gpt4 book ai didi

Java 通过套接字接收对象

转载 作者:行者123 更新时间:2023-11-30 04:39:46 24 4
gpt4 key购买 nike

我正在为大学开发一款刽子手游戏。它需要通过套接字、服务器和客户端。游戏现在运行良好。

但是当两个人玩它时,试图猜测同一个单词,我需要知道一个用户选择什么字母,这样我就可以在另一个用户 GUI 上禁用该字母。

所以,我正在尝试发送一个带有 id 的字母对象,该 ID 将禁用另一侧的按钮,我首先发送一条消息,警告我将发送一个对象,所以我没有收到异常。

它只读取我发送的前两个对象,在第三个对象上我收到一个名为java.io.StreamCorruptedException的异常。有人知道为什么吗?

    Sending:
toClient= new DataOutputStream(socketConection.getOutputStream());
toClient.writeBytes("VK_Letra\n");
objectToClient= new ObjectOutputStream(socketConetion.getOutputStream());
objectToClient.writeObject(new Letter());
objectToClient.flush();

Receiving:
fromServer = new BufferedReader(new InputStreamReader(socketCliente.getInputStream()));
objectFromServer = new ObjectInputStream(socketCliente.getInputStream());

public void run(){
String str;
try{
while(true){
str = fromServer.readLine();

if(str.equals("VK_Letter")){
Letter l = (Letter) objectFromServer.readObject();
System.out.println(l.getLetter());
button[l.getId()].setEnabled(false);
}else{
chat.append(str+ "\n");
chat.setCaretPosition(chat.getDocument().getLength());
}
}
}catch(IOException | ClassNotFoundException e){
JOptionPane.showMessageDialog(/* Error Message */);
}
}

最佳答案

我使用的方法是将所有内容都作为对象,以便您只发送和接收对象。然后该对象将指示实际消息以及任何参数或参数或数据。

您混淆了读取行和获取对象。

关于Java 通过套接字接收对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12587346/

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