gpt4 book ai didi

java - 服务器/客户端套接字和 ObjectOutputStream

转载 作者:行者123 更新时间:2023-12-01 10:06:32 24 4
gpt4 key购买 nike

服务器:

   Socket client_socket = server_back_end.server_socket.accept(); //1.

ClientInfo new_client = new ClientInfo(
new ObjectOutputStream(client_socket.getOutputStream()), //writer
new ObjectInputStream(client_socket.getInputStream()), //reader
"blah, about to be re-written"
);

new_client.user_name = (String) new_client.reader.readObject(); //3. "bob"
//new_client.user_name = new_client.reader.readLine(); //this doesnt work either

System.out.println("Client " + new_client.user_name + " has connected.");
<小时/>

客户:

Socket client_socket = new Socket();
client_socket.connect(new InetSocketAddress(server_ip, server_port), 500);
client_front_end.display("<<Connection Successful.>>\n");

String user_name = txtfield.getText(); //"bob"

client = new ClientInfo(
new ObjectOutputStream(client_socket.getOutputStream()), //writer
new ObjectInputStream(client_socket.getInputStream()), //reader
user_name);

client.writer.writeChars(client.user_name); //2.
<小时/>

我首先运行服务器代码。当我单步执行服务器端的调试器时,“//1”。执行,并等待客户端连接。

然后我运行客户端代码。我期望发生的是“//2”。应该调用“//3”。在服务器代码中,选择名称,并打印用户已连接。但是ObjectOutputStream.writeChars(client.user_name) 未触发服务器中的读取。我究竟做错了什么?我的目标是使用这些 ObjectOutput/ObjectInput 流成功打印客户端的名称

最佳答案

您正在读取一个对象,但没有写入一个对象。你正在写字符。 readObject() 只能读取writeObject() 的输出。 readInt() 只能读取writeInt() 的输出。等等。

关于java - 服务器/客户端套接字和 ObjectOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36415262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com