我尝试为策划游戏建立客户端/服务器连接。 我使用枚举来表示不同的钉子并使它们可序列化。
然后我必须实现连接,使用serversocket并使用accept等获取套接字。 一旦建立连接,我首先必须阅读客户端对象,这是我遇到问题的地方......
这是我的一段代码,在我做任何事情之前都会产生EOFException! (客户端数据是根据用户的交互发送的)。
ObjectInputStream ois =
new ObjectInputStream(socket.getInputStream());
ArrayList<Peg> combination = new ArrayList<Peg>();
do
{
combination.clear();
for (int i = 0; i < 4; i++)
{
combination.add((Peg)ois.readObject());
}
}
while (!checkCombination(combination));
ois.close();
socket.close();
提前感谢
答案 0 :(得分:2)
我们需要更多细节。你如何同步客户端的写入和服务器上的读取?你能发布更多细节吗?
BTW,使用原始套接字是绝对的要求吗?如果没有,请尝试RMI,这样可以轻松完成您想做的事情(即透明地发送Java对象等等)。答案 1 :(得分:0)
如果您收到EOFException,则表示另一端已关闭连接。
如果要发送列表,只需发送列表即可。即。
// on the sender
List<Peg> list =
oos.writeObject(list);
// on the receiver
List<Peg> list = (List<Peg>) oid.readObject();