我正在尝试实现一个服务器,它在收到消息时会执行以下操作:
try{
ObjectInputStream is = new ObjectInputStream(clientSocket.getInputStream());
String message = (String)is.readObject();
ActivateCommand(message,clientSocket);
is.close();
}
和激活命令:
private void ActivateEwolfCommand(String msg, Socket clientSocket) throws IOException
{
ObjectOutputStream os = new ObjectOutputStream(clientSocket.getOutputStream());
Gson gsonObject = new Gson();
.
//code which makes a Json string
.
os.writeObject(json);
os.close();
}
现在,当我通过 junit 测试向本地主机发送消息对其进行测试时,它可以正常工作。但是当尝试从 C# 客户端连接到服务器时,客户端连接但服务器在到达 clientSocket.getInputStream() 点时抛出 EOF 异常。我猜这是因为服务器不知道消息何时结束,但我不知道是否真的如此,如果是,那么我该如何解决?