1

マウス座標を他のものと一緒にサーバーに送信したいとしましょう。それを行う最善の方法は何ですか?私のアイデアは、オブジェクトを作成し、それにデータを添付して送信することでした。私はあなたが見ることができるように私の試みを投稿しました: (それはうまくいきません.) これは良い方法ですか? 私は何を間違っていますか?など。それが良い考えでない場合、代わりにどのようにすればよいですか?

クライアントコード

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 );
        }
    }
}
4

1 に答える 1