Hallo liebe Community,
ich versuche zur Zeit eine Client-Server-Anwendung zu schreiben, bei der ich Client und Server durch ObjectStreams miteinander verbinde. Anschließend würde ich dann gerne ein String Objekt testweise zum Server schicken und dort ausgeben lassen.
Leider kommt dort aber nichts an...die Verbindung scheint zwar zu bestehen und ich erhalte auch keinerlei Exceptions, aber trotzdem erhalte ich meinen String auf dem Server nicht...
Ich versuche nun mal, möglichst nur den relevanten Code zu zitieren, vielleicht fällt jemandem ja sofort ein Fehler auf.
Liebe Grüße
Hier erzeuge ich einen Client aus meiner Client-Klasse, welcher sich mit dem Server verbindet.
Dann erstelle ich ein Objekt meiner MessageObject-Klasse, welches ich dann mithilfe der Methode sendName() versenden will.
Im Server möchte ich dann mit der Methode getName() den String erhalten.
Die Objekte dieser Klasse möchte ich versenden, daher implementiere ich das MarkerInterface Serializable.
ich versuche zur Zeit eine Client-Server-Anwendung zu schreiben, bei der ich Client und Server durch ObjectStreams miteinander verbinde. Anschließend würde ich dann gerne ein String Objekt testweise zum Server schicken und dort ausgeben lassen.
Leider kommt dort aber nichts an...die Verbindung scheint zwar zu bestehen und ich erhalte auch keinerlei Exceptions, aber trotzdem erhalte ich meinen String auf dem Server nicht...
Ich versuche nun mal, möglichst nur den relevanten Code zu zitieren, vielleicht fällt jemandem ja sofort ein Fehler auf.
Liebe Grüße
Hier erzeuge ich einen Client aus meiner Client-Klasse, welcher sich mit dem Server verbindet.
Dann erstelle ich ein Objekt meiner MessageObject-Klasse, welches ich dann mithilfe der Methode sendName() versenden will.
Java:
public class ClientMain {
public static void main(String[] args) {
Client user= new Client("localhost",5553);
MessageObject userName= new MessageObject("Test");
user.sendName(userName);
}
}
Im Server möchte ich dann mit der Methode getName() den String erhalten.
Java:
public class ServerMain {
public static void main(String[] args) {
Server server= new Server(5553);
server.getName();
}
}
Die Objekte dieser Klasse möchte ich versenden, daher implementiere ich das MarkerInterface Serializable.
Java:
public class MessageObject implements Serializable {
private static final long serialVersionUID=1;
String userName;
public MessageObject(String name){
this.userName= name;
}
}
Java:
public class Client {
Socket server;
ObjectOutputStream out= null;
ObjectInputStream in= null;
MessageObject ob;
public Client(String host, int port){
try {
server= new Socket(host, port);
out = new ObjectOutputStream(server.getOutputStream());
in = new ObjectInputStream(server.getInputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendName(MessageObject o){
try {
out.writeObject(o);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java:
public class Server {
MessageObject ob;
ServerSocket server;
Socket player;
ObjectOutputStream out= null;
ObjectInputStream in= null;
public Server(int port){
try {
server= new ServerSocket(port);
System.out.println("Server started...!");
while(true){
player=server.accept();
System.out.println("New Player connected: "+ player.getInetAddress().toString());
out= new ObjectOutputStream(player.getOutputStream());
in= new ObjectInputStream(player.getInputStream());
}
} catch (IOException e1) {
e1.printStackTrace();
} finally{
try {
player.close();
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void getName(){
try {
ob = (MessageObject) in.readObject();
System.out.println(ob);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}