Server Sockets
-
Hallo
bool start_lsocket (int port) { if (!init_socket()) return false; server ("127.0.0.1", port); char buffer [4000]; string ret = ""; int bytes = 0; for (;;) { Sleep(10); cli_size = sizeof(cli); c = accept(s, (struct sockaddr*)&cli, &cli_size); send (c, mastermsg, strlen(mastermsg), 0); send (c, con, strlen(con), 0); recv (c, buffer, 4000, 0); // ret = handle_input (buffer); MessageBox (0, buffer, "test", 0); send (c, ret.c_str(), strlen(ret.c_str()), 0); close(c); } }recv() liest mir ein Zeichen ein...
Die Message box gibt mir gleich das erste Zeichen aus nicht einen string...wenn ich test eingebe kommt t und fertig... als ob recv nur ein zeichen einliest...
ich will dass recv so lange liest bis enter gedrückt wird.
hab das mit einer while (strstr(buffer, "\r\n") != 0) probiert => funktioniert auch nicht.bitte um hilfe
dobro!
-
Die Messagebox ist Modal und blockiert daher deine Schleife. Versuch doch mal am Server eine Zeichenkette per Copy and Paste zu senden. Ich nehme mal an Du hast dort ein Editfeld!?
-
läuft über die console...
-
Werte den return wert von recv(..) aus!
Du kannst nicht davon ausgehen, dass die gesamte Meldung mit einem recv(..) ankommt.Simon