0
我目前使用Reliable UDP协议的Java实现,发现[here] [1]。该项目绝对没有教程,所以我发现很难发现问题。Java异常 - 套接字已关闭,可靠的udp帮助?
我已经建立了客户端和服务器。服务器在localhost:1234上运行,客户端在localhost:1235上运行。服务器首先建立,并循环监听连接。
然后我设置它发送一个数据包到服务器。当发送数据包,服务器调用handlePacket() -
DataInputStream i = new DataInputStream(client.getSocket().getInputStream());
short packetID = i.readShort();
i = null;
switch(packetID){
case 3:
Packeta packeta = new Packeta(client);
break;
}
} catch (IOException e) {
e.printStackTrace();
}
我目前使用一个名为Packeta小哑类调试。当构造函数被调用时,它从流中读取日志并将其发送到控制台。然而,总是构建时,它挂起10秒,产生错误之前 -
java.net.SocketException异常:在 lessur.engine.net.packets.Packeta关闭套接字....
。 (Packeta.java:15)
的构造Packeta -
public Packeta(LessurConnectedNode c) {
super((short)3, c);
try {
/*LINE 15*/ Logger.getLogger("adsfas").info("X was "+c.getSocket().getInputStream().read());
} catch (IOException e) {
e.printStackTrace();
}
}
它有一些待办事项与输入流。我不知道什么是错误的,但是从阅读其他线索来看,它可能是有多个输入流的。我迷失了,请帮助。
是不是客户端和服务器应该连接到同一个套接字?例如服务器连接到本地主机:1234和客户端到本地主机:1234? – glindste
它在本地机器上如此 – liamzebedee
我不明白问题的所有细节,但最近我在其他情况下有相同的例外。在我的情况下套接字被连接超时关闭,我通过增加服务器的连接超时参数来解决问题 – shurik2533