我正在使用普通的DataInputStream和DataOutputStream来进行接收、发送(在服务器上使用accept)以制作游戏,但速度非常慢,延迟超过5秒。
以下是我做法的示例:
(dos表示DataOutputStream)
以下是我做法的示例:
(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();
我的应用很慢,但我不知道为什么 :( 请帮帮我?
编辑:每个操作(发送、接受、接收)都有自己的守护线程。