Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinSock] sprawdzenie czy klient coś wysłał

Ostatnio zmodyfikowano 2012-06-23 00:00
Autor Wiadomość
Katruf
Temat założony przez niniejszego użytkownika
[WinSock] sprawdzenie czy klient coś wysłał
» 2012-06-21 18:22:00
Witam piszę program, serwer, który obsługuje kilku klientów i szukam funkcji która by sprawdzała czy klient coś wysłał. Znalazłem w sieci WSARecv ale nie wiem jak jej użyć i czy to jest dobre rozwiązanie, czy mógłby mi ktoś pomóc?
Z góry dziękuje Katruf,
P-58848
kampar
» 2012-06-21 18:34:58
P-58849
Katruf
Temat założony przez niniejszego użytkownika
» 2012-06-21 19:32:34
jeśli dobrze rozumiem to chodzi o funkcję select() ale jak jej użyć? Czy mam ją wywoływać w pętli jeśli zwróci jakąś wartość to znaczy że mogę spokojnie pobrać wiadomość bez ryzyka zablokowania programu?
P-58853
DejaVu
» 2012-06-21 20:03:57
Kurs wszystko omawia, a jeżeli nie to należy doczytać działanie poszczególnych funkcji w dokumentacji. Tak czy inaczej jeżeli tworzysz kod w oparciu o protokół TCP to drugi wątek jest wskazany do odbierania nadchodzących wiadomości.
P-58855
Admixior
» 2012-06-21 22:45:35
hmm...
Przykład Post z godziny:2012-06-13 20:50:22
Co prawda kiedyś napisałem go i się nie przydał, ale teraz...
P-58863
Katruf
Temat założony przez niniejszego użytkownika
» 2012-06-22 13:17:11
tylko że ta funkcja  też blokuje program

while(1){
i = select( 0, & grupa_read, 0, 0,&timeout );
if( i == 0 )return 0;
else if( i == SOCKET_ERROR ) return - 1;

if( FD_ISSET( (int)context->sock, & grupa_read ) )
{
    recv(context->sock, inputBuffer, 512, 0);
cout<<inputBuffer;
send(context->sock, inputBuffer, 512, 0);
}
}
czy możesz mi powiedzieć co tu powinienem poprawić?
P-58892
pekfos
» 2012-06-22 13:49:51
użyj gniazd nieblokujących. Masz je omówione w kursie. (Ale o wiele lepiej używać blokujących w oddzielnym wątku)
P-58893
Katruf
Temat założony przez niniejszego użytkownika
» 2012-06-22 16:00:32
to jest w nowym wątku, tylko ja chce aby możliwe było sprawdzenie czy ta druga strona coś przysłała, np klient się nie odzywa przez minute to żeby wysłać jakieś ponaglenie lub coś w tym stylu
P-58904
« 1 » 2
  Strona 1 z 2 Następna strona