所以基本上我正在写一个客户端 - 服务器多人游戏.我有一个SeverCommunicationThread,如果他收到RequestForGame就会创建一个gameThread来创建gameThread.当我发送一个RequestForGame异常时抛出java.io.StreamCorruptedException:无效的类型代码:00我假设它是因为两个线程都试图读取相同的ObjectInputStream,我对它是如何工作的我没有太多了解,我只知道如何使用它.你能帮我理解问题是什么以及如何解决?谢谢 :)
public class ServerCommunicationThread extends Thread{
private Socket connectionSocket;
private ObjectInputStream inFromClient;
private ObjectOutputStream outToClient;
private String nickname;
private ServerModelManager model;
public ServerCommunicationThread(Socket connectionSocket,
ServerModelManager model) throws IOException {
this.connectionSocket = connectionSocket;
inFromClient = new ObjectInputStream(connectionSocket.getInputStream());
outToClient = new ObjectOutputStream(connectionSocket.getOutputStream());
this.model = model;
start();
}
public void run() {
try {
String nickname = (String) inFromClient.readObject();
if (model.exists(nickname)){
System.out.println(nickname + " already exists");
outToClient.writeObject(new MessageForClient("Please choose another nickname"));
}
else
{
System.out.println(nickname + " connected, adding to …Run Code Online (Sandbox Code Playgroud)