【发布时间】:2015-10-05 00:22:53
【问题描述】:
我有这个用于游戏的服务器/客户端模型,但它一直卡在ObjectInputStream 初始化。
下面是客户端启动方法的代码:
public void start(){
try {
Socket s = new Socket("127.0.0.1", 24680);
Thread.sleep(1000);
ois = new ObjectInputStream(s.getInputStream()); // stuck here
oos = new ObjectOutputStream(s.getOutputStream());
startGame();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是服务器代码:
try {
InputStream fis = socket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(fis);
while (true) {
ArrayList < Dot > lists = (ArrayList < Dot > ) ois.readObject();
for (Socket s: sockets) {
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(lists);
}
}
} catch (Exception e) {
e.printStackTrace();
}
提前致谢!
【问题讨论】:
-
netstat 是否显示连接?创建服务器套接字的服务器代码在哪里?这里没有足够的信息来提供帮助。
-
会不会是网络连接问题?尝试先使用 telnet 连接到您的服务器。
-
你在这方面做了三件事。只有其中一个是正确的。您被
new ObjectInputStream()屏蔽,而不是getInputStream()或new ObjectOutputStream(). -
@JimGarrison 如果没有连接,也不会有
Socket。 -
提供定义服务器套接字和套接字集合的完整代码。
标签: java sockets serialization