|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 20.03.2003, 18:29 Titel: Winsock Probleme |
|
|
Hey Jungs!
Also, ich hab ein paar Probleme mit Winsock,
ich versuche vom Client erst den Namen zu schicken, dann vom Server eine Int Variable(muss ich ja auch als char senden) zu erhalten und dann sende ich selber nochmal eine Int Variable.
Aber ich glaube die Variablen werden irgendwie falsch verschickt, z.B. kommt nicht der Name an, sondern irgendeine komische zeichenfolge...
Hier mal ein paar Code auszüge:
Code: | //Client sendet...
Datei = fopen("name.jjs","r");
fgets(name,35,Datei);
fclose(Datei);
rc=send(Socket,name,35,0);
//Server empfängt...
rc=recv(Socket,name,35,0);
sprintf(buf,"Gegner da: %s",name);
MessageBox(0,buf,"Netzwerkgame",MB_OK); |
Wie gesagt, ich erhalte ein paar komische zeichen in der MessageBox, aber nicht das was in der Datei steht.
dann noch die int Variablen:
Code: | //Client sendet...
sprintf(eigeneKampfkraft,"%i",Kampfkraft);
[...]
rc=recv(Socket,gegnerKampfkraft,35,0);
rc=send(Socket,eigeneKampfkraft,35,0);
gegner=atoi(gegnerKampfkraft);
//Server empfängt...
sprintf(eigeneKampfkraft,"%i",Kampfkraft);
[... ]
rc=send(Socket,eigeneKampfkraft,35,0);
rc=recv(Socket,gegnerKampfkraft,35,0);
gegner=atoi(gegnerKampfkraft); |
Ich hab das getestet, jeder übermittelt eine Kampfkraft von 1 an den anderen... Aber trotzdem erhalten beide eine falsche gegnerkampfkraft variable, nämlich 0...
hier nochmal der Code der für die Ausgabe ist:
Code: | //Bei Client und Server gleich, ausser das das gleichheitszeichen beim
//Client bei der unteren if anweisung ist.
if(Kampfkraft>=gegner)
{
sprintf(buf,"Du hast die Raumschlacht gewonnen! \nDer Gegner hatte eine Kampfkraft von: %i \nDu hattest eine Kampfkraft von: %i \n %s ",gegner,Kampfkraft,gegnerKampfkraft);
MessageBox(0,buf,"Netzwerknachricht:",MB_OK);
}
if(Kampfkraft<gegner)
{
kleinerjaeger=0;
sprintf(buf,"Du hast die Raumschlacht verloren! \nDer Gegner hatte eine Kampfkraft von: %i \nDu hattest eine Kampfkraft von: %i \n %s ",gegner,Kampfkraft,gegnerKampfkraft);
MessageBox(0,buf,"Netzwerknachricht:",MB_OK);
} |
Hier wird wie gesagt bei Gegnerkamprkraft immer 0 ausgegeben, zur Überprüfung wollt ich nochmal das %s mit dem angekommenen String ausgeben, aber da erscheint überhaupt nix!
Kann mir wer weiterhelfen??? |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 02.08.2004, 19:50 Titel: |
|
|
Bei Problemen mit Winsock ( davon hatte ich schon genug! ) kann ich nur http://www.c-worker.ch/tuts.html empfehlen. _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 02.08.2004, 23:51 Titel: |
|
|
versuch dir mal folgendes anzugewöhnen:
Code: |
rc=recv(Socket,gegnerKampfkraft,35,0);
gegnerKampfkraft[rc] = '\0';
|
hf gl _________________ "Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."
"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."
"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun" |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|