Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

cng27

Doppel-As

Dabei seit: 06.04.2010

Beiträge: 108

 

1 Zum Seitenanfang

Samstag, 28. Mai 2011, 17:31

C++ Sockets

Hi, ich hab ein Problem mit den C++ Sockets. (libws2_32)

Und zwar hab' ich einen TCP Server, der bei einer Akzeptierten Verbindung
an den Client den Text

Quellcode

1
accept_player
sendet. Der Client soll dann mit dem
Laden des Spiels fortfahren. Aber bei der Abfrage auf dem Client

Quellcode

1
2
3
if(buffer == "accept_player"){
...
}

kommt IMMER false raus.
Wenn ich den empfangenen Text ausgeben lasse:

Quellcode

1
cout<<buffer;

kommt aber

Quellcode

1
accept_player


Was mache ich falsch? Hier der komplette Socket-Quelltext:

Server:

Quellcode

1
2
3
4
5
6
7
8
9
while(true){
    if(Connect = accept(Listen, (SOCKADDR*)&Server, &size)){
    if(int ret = recv(Connect, buffer, 100, NULL)){
    buffer[ret] = '\0';
    cout<<"***Player "<<buffer<<" accepted!\n";
    send(Connect, "accept_player", 14, NULL);
    }
    }
    }


Client

Quellcode

1
2
3
4
5
6
7
8
9
send( Connect, username, 50, 0 );
    char buffer[256];
    while(true){
    if(int ret = recv(Connect, buffer, 100, NULL)){
    buffer[ret] = '\0';
    bool isit = (buffer == "accept_player");
    cout<<isit;
    }
    }


Bitte um schnelle Hilfe!!! ?(

Quellcode

1
Idee := Brain.Activate(self)
 

cng27

Doppel-As

Dabei seit: 06.04.2010

Beiträge: 108

 

2 Zum Seitenanfang

Samstag, 28. Mai 2011, 18:25

Okay, ich habs raus. Für die dies interessiert:

Ich habe den char buffer in einen std::string umgewandelt und mittels

Quellcode

1
cout<<string;

ausgegeben.
Das ergebnis:

Quellcode

1
accept_playe


Komischerweise wurde der Letzte Buchstabe weggelassen.
Wieauchimmer: ich habe einfach an den Text vom Server
noch einen Punkt rangehangen:

Quellcode

1
send(Connect, "accept_player.", 14, NULL);

Der letzte Buchstabe (in dem Falle also der Punkt) wurde wieder weggelassen
und die Abfrage ergab true!

mfg cng

Quellcode

1
Idee := Brain.Activate(self)