005
07.05.2005, 19:35 Uhr
~hdz
Gast
|
| C++: |
fd_set conn; struct timeval timeout; timeout.tv_sec = 2; // Sekunden Timeout timeout.tv_usec = 0;
FD_ZERO( &conn ); FD_SET( s, &conn );
while(rueckgabe != SOCKET_ERROR){ rueckgabe = select( ((int)socket + 1), &conn, NULL, NULL, &timeout ); // das +1 ist wichtig, frag mich nicht wieso if( rueckgabe > 0 ){ rueckgabe = recv(s, buf, 256, 0); if(rueckgabe == SOCKET_ERROR){ cout << "Fehler: recv\nCode: " << WSAGetLastError() << endl; } else{ buf[rueckgabe] = '\0'; } } if(kbhit()){ gets(buf); rueckgabe = send(s, buf, strlen(buf), 0); if(rueckgabe == SOCKET_ERROR){ cout << "Fehler: send\nCode: " << WSAGetLastError() << endl; } else if(rueckgabe != strlen(buf)){ cout << "Fehler: send\nNur " << rueckgabe << "bytes gesendet!\n"; } } }
|
Sorry, ich habe mir alles erdenkliche durchgelesen, aber ich kapier einfach nicht, warum das Programm beendet, sobalt ich keine Eingabe mache, oder spätestens wenn ich enter drücke nachdem ich eine taste gedrückt habe, normal sollte es doch dann wieder an den Anfang der while Schleife laufen.
Bitte helft mir nochmal, ich finds nicht raus... |