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

[WinSock] send() zwraca SOCKET_ERROR, WSAGetLastError() zwraca 0

Ostatnio zmodyfikowano 2011-10-18 15:20
Autor Wiadomość
xevuel
Temat założony przez niniejszego użytkownika
[WinSock] send() zwraca SOCKET_ERROR, WSAGetLastError() zwraca 0
» 2011-10-13 08:27:06
Wczoraj próbowałem powrócić do starego projektu. Mam w nim funkcję send(). Zauważyłem, że send() zwraca SOCKET_ERROR, a WSAGetLastError() zwraca 0. Dlaczego?

Kod:
C/C++
while( nSendSize > 0 )
{
    ret = send( sClient, & buffor[ iCurrPos ], nSendSize, 0 );
    if( ret == 0 )
         break;
    else if( ret == SOCKET_ERROR )
    {
        MessageBox( 0, "Błąd wysyłania", "Błąd", 0 );
        int what = WSAGetLastError();
        IntInfo( what );
        break;
    }
    nSendSize -= ret;
    iCurrPos += ret;
}
P-42012
DejaVu
» 2011-10-13 08:36:16
Może sClient jest nieprawidłowy?
P-42013
xevuel
Temat założony przez niniejszego użytkownika
» 2011-10-14 10:30:12
sClient jest zadeklarowany globalnie, a uzyskuję go w ten sposób:
C/C++
sClient = accept( sServerListen,( struct sockaddr * ) & clientaddr,
& iSize );
if( sClient == INVALID_SOCKET )
{
    MessageBox( 0, "Błąd funkcji accept", "Błąd", 0 );
    break;
}

Przy próbie wysłania danych do klienta, serwer wyświetla błąd wysyłania, a po zakończeniu pracy klienta (przed zakończeniem pracy serwera) serwer wyświetla błąd odbioru...
P-42067
DejaVu
» 2011-10-14 10:31:52
Może klient nie czeka na wiadomość tylko kończy swoją pracę i rozłącza się z serwerem zanim ten cokolwiek mu wyśle?
P-42068
xevuel
Temat założony przez niniejszego użytkownika
» 2011-10-14 10:40:46
Po zakończonym odbiorze klient powinien o tym poinformować. A informuje tylko w przypadku, gdy zakończę pracę serwera...
P-42069
malan
» 2011-10-15 14:01:02
& buffor[ iCurrPos ]
 - co to jest?
P-42140
xevuel
Temat założony przez niniejszego użytkownika
» 2011-10-15 14:03:53
to? Wskaźnik do bufora, który przechowuje dane.
P-42141
malan
» 2011-10-15 14:06:26
Jeszcze pewnie typu char?
P-42143
« 1 » 2
  Strona 1 z 2 Następna strona