Client/Server send() recv()
-
Hi,
Ich sitze nun schon ne Weile an einem Problem fest.
Ich habe eine einfache Client/Server Struktur bei der ich nur eine Zahl an einen Serversenden möchte.
Der Server erhält auch ein paar Daten nur wenn ich mir die Zahl beim Server ausgeben lasse, dann steht da irgend ein Mist drinne.Hier mal der Code vom Server:
char buffer[254]; int bytes; //Daten die empfangen werden bytes = recv(s, buffer, sizeof(buffer) - 1, 0); buffer[bytes] = '\0'; puts(buffer); //sprintf(buffer, "Received Number: %c", bytes); MessageBox(0, buffer, "WinSock Tutorial Series", MB_ICONINFORMATION);Und hier der Teilcode vom Client:
//zu sendene Zahl char clientNummer[254] = "123"; //Verbindung zum Server (Verbindung zum eigenen Socket, Serveradresse, Größe der Serveradresse) if(connect(s, (SOCKADDR *) &addr, sizeof(addr)) == SOCKET_ERROR) //wenn kein Connect, dann gibt es einen Socketerror und es wird eine Fehlermeldung ausgegeben return (MessageBox(0, "Verbindung fehlgeschlagen!", "WinSock Tutorial Series", MB_ICONEXCLAMATION)); //zusendene Daten(mein Socket, den wert aus dem Buffer, Länge des Buffer, Flag) send(s, clientNummer, strlen(clientNummer), 0);Was mache ich hier falsch? Wie kann ich nur eine simple Zahl senden?
danke
-
Erstmal wär es hilfreich zu wissen, was beim Server ankommt und ich frage mich wofür du puts(buffer) verwendest. Meines Wissens kannst Du das getrost weglassen.
lg Max
-
Kann man hier denn irgendwie ein Bild einfügen?
Dann könnte ich hier die Ausgabe auf der Kommandozeile anzeigen, wie gesagt, es sind einfach nur irgendwelche Zeichen, die mir so nichts sagen würden.Das mit puts ist richtig, aber in diesem Fall auch nicht so wichtig. Wollte nur unterschiedliche Ausgaben prüfen.
-
Was hat dies mit der MFC zu tun?
Da verwenden wir Klassen für Sockets.
Möchtest Du nach WINAPI?
-
Sorry, habe ich das etwa im falschen Bereich eingetragen? Wo muss der Thread denn dann hin?