通过UDP同时接收和发送数据

时间:2016-10-14 06:09:07

标签: java sockets udp

我正在尝试编写一个不断通过UDP监听数据包的程序,但也会定期通过UDP(每隔x秒)发送数据。棘手的部分是我收到的数据会改变我发出的数据,所以我认为我不能简单地在一个单独的线程中执行其中一项任务。我也承受不起阻挡。我希望有人能给我一个正确的方向。如果它是相关的,我使用Java编程,并且将一次发送和接收多个客户端的数据。

2 个答案:

答案 0 :(得分:0)

  
    

我认为我不能简单地在一个单独的线程中执行其中一项任务。

  

您仍然可以使用recv并在单独的线程中发送。但它们不可能异步发生。如果您发出的数据将取决于您收到的数据,那么您不能异步发送/ recv。这是一个请求/响应模型。只有在收到请求后才能发送响应。

  
    

我也承受不起阻止

  

您仍然可以为非阻止

设置套接字

答案 1 :(得分:0)

虽然您可以使用单独的线程,但您可以使用与套接字关联的简单超时来执行此单线程:

按照此处的示例:

set timeout for socket receive

当套接字抛出超时异常时,你会定期发送,然后返回接收套接字上的数据。