マウス座標を他のものと一緒にサーバーに送信したいとしましょう。それを行う最善の方法は何ですか?私のアイデアは、オブジェクトを作成し、それにデータを添付して送信することでした。私はあなたが見ることができるように私の試みを投稿しました: (それはうまくいきません.) これは良い方法ですか? 私は何を間違っていますか?など。それが良い考えでない場合、代わりにどのようにすればよいですか?
クライアントコード
import java.io.*;
import java.net.*;
public class Client{
public static void main(String[] args) throws IOException {
Socket clientSocket = null;
ObjectOutputStream out = null;
ObjectInputStream in = null;
try {
clientSocket = new Socket("My ip", 4441);
out = new ObjectOutputStream(clientSocket.getOutputStream()); // Stuff to send to server
in = new ObjectInputStream(clientSocket.getInputStream()); // Stuff server sends
} catch (UnknownHostException e) {
System.err.println("Unknown host");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O");
System.exit(1);
}
while (true) {
out.writeByte(1);
out.writeObject(new CustomObject());
out.flush();
}
}
}
カスタムオブジェクト
public class CustomObject {
public int mouseX, mouseY;
public CustomObject() {
this.mouseX = 10;
this.mouseY = 16;
}
}
サーバ
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4441);
} catch (IOException e) {
System.err.println("Could not listen on port");
System.exit(1);
}
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
System.out.println("Connected");
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
ObjectOutputStream out = new ObjectOutputStream(clientSocket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
CustomObject go;
while (true) {
go = (CustomObject) in.readObject();
System.out.println( go.mouseX );
}
}
}