我正在使用DatagramSocket運行UDP Java實現,其中接收在一個線程上運行,並且發送操作在單獨的線程上運行。當我的程序啓動時,我需要打電話給服務器並接收信息。問題在於,由於線程的原因,即使我首先啓動接收線程,但有時發送將首先出現,並且服務器迴應時,套接字尚未在另一個線程中調用receive()。由於此線程阻塞了receive()行,因此我無法使用標誌來驗證receive()是否已被調用。有沒有什麼辦法可以檢查套接字當前是否在receive()上阻塞,這樣我就可以等待發送,直到我驗證該條件爲止?如何在DatagramSocket處於接收狀態時意識到
2
A
回答
1
在recvfrom()循環之前從rx線程啓動tx線程,並在tx線程的開始處放置一個睡眠(2000),然後它也開始圍繞它的輸入隊列或任何它通常會執行的操作東西發送。
0
你不需要兩個插座。
創建一個單一的
DatagramSocket.
立即處於「接收狀態」。啓動該過
DatagramSocket.
開始接收發送線程發送過來的
DatagramSocket.
的順序的接收螺紋(2)和(3)並不真正的問題任何更多。
相關問題
- 1. 如何在接收狀態下關閉DatagramSocket
- 2. 在GPRS連接處於活動狀態時發送/接收SMS
- 3. Datagramsocket未收到
- 4. 當處於TRANSMITFRAME狀態時,802.11p FSM收到未知事件
- 5. ANDING處於連接狀態?
- 6. 添加超時的DatagramSocket - 接收()
- 7. 如何識別進程在python中處於凍結狀態?
- 8. 如何使用getNetworkInfo來識別WiFi狀態是否處於活動狀態?
- 9. 在應用程序處於停止狀態時接收Android GCM通知
- 10. 如何在手機處於空閒狀態時收集加速度計數據
- 11. Android:如何在手機處於睡眠狀態時開始活動,類似於Viber接收呼叫活動
- 12. 如何識別IEditableObject是否處於編輯狀態?
- 13. 接收廣播應用處於停止狀態
- 14. 如何在其他鏈接處於活動狀態時刪除其他鏈接上的活動狀態
- 15. AdMob狀態處於非活動狀態,但我收到了自家廣告
- 16. 如何在接收到接近警報意圖時接收位置信息?
- 17. 如何接收WCF狀態響應
- 18. 當使用hbase接收器(Cloudera)時,Flume「config」命令處於EXECING狀態
- 19. 當電腦處於睡眠狀態時電源狀態發生變化時,能否收到通知?
- 20. DatagramSocket的在處理
- 21. 如何在收到HTTP狀態不是OK時收到XML響應?
- 22. 如何使頂部鏈接在magento中點擊時處於活動狀態?
- 23. Hello-samza - 任務處於接受狀態
- 24. RabbitMQ連接處於阻塞狀態?
- 25. 如何在UITableViewCell處於高亮狀態時執行操作?
- 26. 如何在設計時使UserControl處於惰性狀態?
- 27. 如何在錨點處於活動狀態時顯示div?
- 28. Qt:如何在QTimer處於活動狀態時延遲程序?
- 29. 如何在ui-select處於禁用狀態時清除字段?
- 30. DatagramSocket將隨機停止接收數據包(有時仍會收到)
呃,大腦正在註銷,但這會是一個'CountDownLatch'的情況嗎?隨意把它放在一個答案,睡覺。 –
@owlstead:或許問題中的發送線程也應該爲'thread.sleep' :) – Patrick
問題是因爲receive()阻塞並等待,所以我不能遞減倒計數鎖存器,因爲它不會經過那個點。 – user1712917