首页 > 解决方案 > Java UDP套接字非阻塞?

问题描述

我有一个 UDP 套接字,我正在等待来自客户端的请求。根据请求,我从文件中读取一行并将该行作为有效负载发送回数据报。但socket.receive()似乎只阻塞了第一个请求(循环迭代),后续socket.receive()调用不再阻塞。这正常吗?为什么会这样?

String input;
DatagramSocket socket = new DatagramSocket(port);
DatagramPacket answer;
while((input=fileIn.readline()))!=null){
  socket.receive(request);
  ...
  //send answer back
  byte[] load = input.getBytes();
  answer = new DatagramPacket(load, load.length, address, port);
  socket.send(answer);
 }
 socket.close();

程序已经发送了所有文件数据,因此在第一次请求之后文件的所有行,因此跳过了阻塞socket.receive()

标签: javasocketsnetworkingudp

解决方案


推荐阅读