我在线程中只使用普通的 DataInputStream 和 DataOutputStream 来接收、发送(在服务器上接受)来制作游戏,但它真的很慢。> 5 秒延迟。
这是我的制作方法(大部分看起来像这样):
(dos 是 DataOutputStream)
dos = new DataOutputStream(socket.getOutputStream());
dos.writeFloat(dp.x);
dos = new DataOutputStream(socket.getOutputStream());
dos.writeFloat(dp.y);
dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(dp.username);
对于输入(这个在服务器中),我使用:
(dis 是 DataInputStream,它在 for 循环中,所以 i 是针对每个玩家的)
dis = new DataInputStream(list_sockets.get(i).getInputStream());
x = dis.readFloat();
dis = new DataInputStream(list_sockets.get(i).getInputStream());
y = dis.readFloat();
dis = new DataInputStream(list_sockets.get(i).getInputStream());
username = dis.readUTF();
所以它真的很慢,但我不知道为什么:(请帮忙?
编辑:每个操作(发送、接受、接收)都有自己的守护线程。