【发布时间】:2012-04-11 10:54:27
【问题描述】:
您好,我想告诉您,我为我的游戏制作了多人游戏并且它可以运行,但是从欧洲的一侧到另一侧,需要 8 秒。发送的内容不多,只发送一个有float x、float y和String username的对象。
在服务器中,我有 3 个线程:接受、发送、接收。并且客户端有发送和接收。
部分服务器发送:
oos = new ObjectOutputStream(new BufferedOutputStream(list_sockets.get(i).getOutputStream()));
int client_state = list_client_states.get(i);
oos.writeObject(client_state);
oos.flush();
oos = new ObjectOutputStream(new BufferedOutputStream(list_sockets.get(i).getOutputStream()));
oos.writeObject(list_data);
oos.flush();
客户端类似,这里是服务器的接收(播放器也类似):
ois = new ObjectInputStream(list_sockets.get(i).getInputStream());
int receive_state = (Integer)ois.readObject();
ois = new ObjectInputStream(list_sockets.get(i).getInputStream());
DataPackage dp = (DataPackage) ois.readObject();
list_data.set(i,dp);
【问题讨论】:
-
好的,我会看到,我没有做任何 ping 操作,现在我会看到 protobuf 和 Kyro
标签: java performance sockets multiplayer