簡體   English   中英

通過UDP並發接收和發送數據

[英]Concurrent Receiving and Sending of Data over UDP

我正在嘗試編寫一個程序,該程序不斷偵聽UDP上的數據包,但還定期通過UDP發送數據(每隔x秒)。 棘手的部分是我接收到的數據將更改我發送的數據,因此我認為我不能簡單地在單獨的線程中執行一項任務。 我也承受不起任何阻礙。 我希望有人能給我正確的方向。 如果相關的話,我正在用Java編程,並且將一次與多個客戶端發送和接收數據。

我認為我無法在單獨的線程中簡單地完成一項任務。

您仍然可以使用recv並在單獨的線程中發送。 但是它們不能異步發生。 如果您發送的數據將取決於您接收的數據,那么您將無法異步進行發送/接收。 這是一個請求/響應模型。 僅在接收到請求后才發送響應。

我也承受不起任何阻礙

您仍然可以將套接字設置為非阻塞

雖然可以使用單獨的線程,但是可以通過與套接字相關的簡單超時來執行此單線程操作:

請在此處遵循示例:

設置套接字接收超時

當套接字拋出超時異常時,您將進行定期發送,然后返回到在套接字上接收數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM