S
StillLovingYou
Neues Mitglied
- 0
Ich habe ein kleines Problem mit einer Client-Anwendung, an der ich z.Z. sitze und zwar, möchte ich mit dem Client einen Integer an einen Server auf meinen Computer senden und den Wert des Integers zu Testzwecken auf meinem Computer ausgeben lassen. Das Senden der Daten an sich klappt einwandfrei, allerdings wird auf meinem Computer ein falscher Wert ausgegeben.
Hier mal der CodeSchnipsel, um den es geht:
Zum Server:
Dieser ist nicht in Java, sondern in einer Basic-Sprache geschrieben.
Er ermittelt, ob sich ein Client verbunden hat, ob ein Client die verbindung zum Server gekappt hat und ob der client Daten an den Server gesendet hat. Diese 3 Dinge funktionieren tadellos. Auch das Ausgeben der Daten funktioniert soweit, nur mit dem Problem, dass er mir anstelle der Zahl "11413" die Zahl "-1792278528" ausgibt.
Noch eine kleine Erklärung zum Server:
Wenn der Server merkt, dass Daten empfangen wurden, dann speichert er diese in einem 4 Byte großen reservierten Speicherbereich. Danach liest er den Speicherbereich aus und gibt mir den darin enthaltenen Wert aus.
Ich kann mir nicht vorstellen, dass das Problem am Server-Programm liegt (aber man weiß ja nie, daher die kleine Erklärung dazu).
Jetzt wollte ich mal fragen, ob jemand an meinem Client-Code oder an meiner Server-Beschreibung erkennt, warum ein falscher Wert zurückgeliefert wird.
Hier mal der CodeSchnipsel, um den es geht:
Code:
package com.example.homework;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class MyClient extends Thread {
private String ip;
private int port;
public static final int SEND_THIS_VALUE = 11413;
public void run(){
try {
Socket sock = new Socket(ip, port);
DataOutputStream dOS = new DataOutputStream(sock.getOutputStream());
dOS.writeInt(SEND_THIS_VALUE);
sock.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
MyClient(String ip, int port){
this.ip = ip;
this.port = port;
}
}
Dieser ist nicht in Java, sondern in einer Basic-Sprache geschrieben.
Er ermittelt, ob sich ein Client verbunden hat, ob ein Client die verbindung zum Server gekappt hat und ob der client Daten an den Server gesendet hat. Diese 3 Dinge funktionieren tadellos. Auch das Ausgeben der Daten funktioniert soweit, nur mit dem Problem, dass er mir anstelle der Zahl "11413" die Zahl "-1792278528" ausgibt.
Noch eine kleine Erklärung zum Server:
Wenn der Server merkt, dass Daten empfangen wurden, dann speichert er diese in einem 4 Byte großen reservierten Speicherbereich. Danach liest er den Speicherbereich aus und gibt mir den darin enthaltenen Wert aus.
Ich kann mir nicht vorstellen, dass das Problem am Server-Programm liegt (aber man weiß ja nie, daher die kleine Erklärung dazu).
Jetzt wollte ich mal fragen, ob jemand an meinem Client-Code oder an meiner Server-Beschreibung erkennt, warum ein falscher Wert zurückgeliefert wird.