Das Programm bleibt an einer Stelle immer hängen ;-(
-
Hi,
das ist der ausschnitt des Programms in dem es immer hängenbleibt...
Davor verbindet es mit einem ftp-Server.rc = recv(s, buf, 255, 0); if ((rc == SOCKET_ERROR) || (rc == 0)) { printf("Socket Error!!!\n"); return 0; } buf[rc] = '\0'; printf("%s", buf); // hier schreibt er gewöhnlich dass der server bereit is while (rc != SOCKET_ERROR) { printf ("Senden: "); gets(buf); rc = send(s, buf, strlen(buf), 0); printf("Gesendet: %s\n", buf); rc = recv(s, buf, 255, 0); // Diese Stelle erreicht das bescheuerte Programm nicht!!! if(rc==0) { printf("Fehler: Server hat die Verbindung getrennt..\n"); break; } buf[rc] = '\0'; printf("%s\n", buf); }
könntet ihr da mal bitte n blick draufwerfen?
thx schonmal..
-
Also AFAIK müsste der String, den man eingibt ja mit einem \r\n Enden, das müsstest du hinzufügen.
-
Setz mal nen Breakpoint an die Stelle und schau Dir den Wert an, den RC da annimmt....
Wunder Dich aber dann nicht, wenn es WSAEWOULDBLOCK (=10035) (bei einem asynchronen Socket) annimmt und deshalb in Deiner while()-Schleife endlos festhängt!
-
Also ich hab jetzt an buf "\r\n" angehängt, das ändert aber nix.
wenn ich buf allerding im programm festlege und innerhalb von dem string ein "\n" is dann antwortet der server mit dem fehler 724.was meinst wo ich den breakpoint hinsetzen soll? an die stelle wo er nicht hinkommt oder was? das stört den ziemlich wenig... da kommt er wie gesagt net hin.
und steht in rc die länge von buf.
-
sry, es gibt doch keinen fehler 724, sondern rc hat diesen wert, und er bricht ab weil das scheinbar ein SOCKET_ERROR is
-
ich depp hab des "\r\n" an der nach dem send angehängt *ggg*
jetzt gehtsvielen dank für eure hilfe