java - 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()
。
解决方案
推荐阅读
- uinavigationcontroller - 未生成 SafeArgs
- jquery - 成功的 AJAX 请求后 jQuery 数据表不绘制
- r - R:将嵌套的for循环转换为应用函数
- c# - 消费(超时)超时 > max.poll.interval.ms 不触发重新平衡
- c++ - 我正在创建一个 atm 程序,但我遇到了 pin 验证问题
- python - 来自 Django 的 PasswordChangeForm 没有显示在具有 2 个表单的模板上
- python - 对多索引数据帧进行排序
- javascript - 在 React js 中解析 JSON
- gitlab-ci - 如何通过artifactory在gitlab CI中实现artifact存储
- python - 上传文件时出现 400 Bad Request [Flask on Cloud9]