DatagramSocket如何做到每次都收包不卡顿
How does DatagramSocket receive packet everytime and does not stuck
我创建了一个 DatagramSocket。
当我在等待数据包时,在收到数据包之前我无法做任何事情。
如果我想做点什么,比如在等包的时候打印点什么。
我该怎么做?
这是我的代码。
private DatagramSocket socket = new DatagramSocket(8080);
private DatagramPacket packet = new DatagramPacket();
bool b = true;
int x = 0;
do {
socket.receive(packet);
//if I receive a packet, print the payload of the packet
System.out.println(x);
x++;
} while (b);
我想继续打印 "x"。如果我收到一个数据包,我将打印数据包的有效负载。
或
我可以把接收功能放在后台吗?当我收到包裹时,我会立即打印它。
对于这种情况,您可以使用线程。您正在将主线程置于无限循环中,这样您就无法在循环之外做任何事情。如果你再创建一个线程并用它来接收数据包,那么你的主线程可以做其他工作。
我创建了一个 DatagramSocket。 当我在等待数据包时,在收到数据包之前我无法做任何事情。 如果我想做点什么,比如在等包的时候打印点什么。 我该怎么做?
这是我的代码。
private DatagramSocket socket = new DatagramSocket(8080);
private DatagramPacket packet = new DatagramPacket();
bool b = true;
int x = 0;
do {
socket.receive(packet);
//if I receive a packet, print the payload of the packet
System.out.println(x);
x++;
} while (b);
我想继续打印 "x"。如果我收到一个数据包,我将打印数据包的有效负载。
或
我可以把接收功能放在后台吗?当我收到包裹时,我会立即打印它。
对于这种情况,您可以使用线程。您正在将主线程置于无限循环中,这样您就无法在循环之外做任何事情。如果你再创建一个线程并用它来接收数据包,那么你的主线程可以做其他工作。