我想知道如何正确组织服务器和客户端之间的数据包交换。
因此,例如,要将数据从客户端发送到服务器,我会这样做:
DatagramSocket socket = new DatagramSocket();
byte[] buf = new byte[256];
buf = someString.getBytes();
InetAddress address = InetAddress.getByName("192.168.1.115");
DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 35007);
socket.send(packet);
让我们假设我不间断地从UI线程发送数据包,但是服务器会将数据包发回给我。我该怎么收到它们?我假设应该使用DatagramSocket
的相同实例,因为我不能在客户端机器的某个端口打开套接字。正确?
那么,我应该创建DatagramSocket
实例,然后在两个不同的线程中使用它,一个到receive
个数据包,一个到send
?或者我应该在同一个帖子中进行吗?