您好,我想告诉您,我为我的游戏制作了多人游戏并且它可以工作,但是从欧洲的一侧到另一侧,需要 8 秒。发送的内容不多,它只发送一个包含 float x、float y 和 String 用户名的对象。
在服务器中,我有 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);