0
public void sendData(InetAddress address){
        try{
            output = new ObjectOutputStream(socket.getOutputStream());
        output.writeObject(TST);
        output.close();
        }
        catch(IOException ee){
            System.out.println("Error : " + ee);
        }
    }

服务器是多线程的。我的代码中有一部分使用 ObjectOutputStream 发送对象“TST”,如何控制将对象发送给特定客户端的方法,该客户端具有我在何时输入此方法的地址?

4

1 回答 1

0

创建另一个面向连接的 TCP 套接字实例并使用它连接到客户端。

您可以在客户端程序或服务器程序中使用 ServerSocket,具体取决于您方便的方式,但由于您在方法参数上指定了 InetAddress,我猜“socket”是 Socket 或 ServerSocket 的静态实例,如果它是 Socket 的一个实例,将其初始化为

socket=new Socket(address,port);
try{
    output = new ObjectOutputStream(socket.getOutputStream());
    output.writeObject(TST);
    output.close();
}
catch(IOException ee){
    System.out.println("Error : " + ee);
}

在进入 try 块之前或在创建对象输出流之前进入 try 块。

在这种情况下,在您的客户端代码中创建一个 ServerSocket

ServerSocket soc=new ServerSocket(port);
Socket cli=soc.accept();

这将有助于完成任务。

于 2013-05-11T17:02:50.927 回答