Client/Server send() recv()

MrBean06

Grünschnabel
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:
Code:
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:
Code:
//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

PS: Anbei noch das Ergebnis auf der Konsole.
 

Anhänge

  • Server.JPG
    Server.JPG
    21,6 KB · Aufrufe: 389
so gehts jetzt...

Code:
SOCKET clientSocket = accept(s,(struct sockaddr*)&addr, 0); 
if (clientSocket == -1) 
{ 
   cout<<"Fehler bei accept"; 
} 

char buffer[254]; 
int bytes; 
    
//Daten die empfangen werden 
bytes = recv(clientSocket, buffer, sizeof(buffer) - 1, 0);
 
Zurück