我需要從我的Java應用程序監視設備狀態(例如設備ip = 192.168.0.22和端口17000,監視器意味着我發送每1秒的請求並獲取響應等數據)。我需要與發送給該設備的另一條消息並接收答案(在相同的IP和相同的端口上)並行。我創建了socket = new Socket(ipAddress,port)。如何實現我沒有碰到的問題(我需要:我先發送,我從第一個得到響應,我發送第二個從第二個得到響應,我發送第三個得到第三個響應,等等)?Java socket並行發送
0
A
回答
1
除非我失去了一些東西,
- 你可以做每一個單獨的線程,
- 或者您也可以將請求發送到所有三個插座,等待所有三個答覆。
- 或者你可以設計你的服務器一次有三個未決的請求。 (它可能已正確工作)發送三個請求到一個連接並等待三個回覆。
最後一個可能是最有效的解決方案。
1
如果您的工作是關心訂單,所以您必須逐一發送請求數據,我的理解是,您的意思是,當您將數據同時發送到設備時,回覆你? 不用擔心,因爲套接字必須緩衝,一個用於發送,另一個用於接收。
1
您可以定義一個請求類型標識符。然後在實現的SocketServer端,可以解析標識符並將請求傳遞給用於處理該類請求的新線程。因此,在你的情況下,你會定義3個不同的處理程序,並且每種類型都會得到一個請求,您可以選擇使用哪個處理程序來處理請求。每個請求將使用相同的Socket進行。
不過,從你的最後一句話:
我需要:我先發,我從第一次得到響應 ,我送第二我從第二 響應,我送第三個我 得到第三響應等等
這聽起來不像並行請求。相反,它聽起來像你想要一個接一個地運行它們,即第二個請求取決於第一個請求的響應?如果是這種情況,那麼你只需使用相同的套接字(不要爲每個請求創建一個新套接字)。然後請求代碼中的邏輯將僅僅是發送請求1,等待響應1,然後發送請求2等等。
相關問題
- 1. 在Android中發送和接收Socket Java
- 2. 發送和接收Java Socket錯誤
- 3. Java:通過Socket以低bitdepth發送BufferedImage
- 4. Socket上的Java與WiFifreezing發送文件
- 5. java socket編程:消息發送順序
- 6. 優化Java Socket發送Android到PC
- 7. android open socket併發送命令
- 8. 併發我的Java Socket編程/ O
- 9. C socket編程,發送
- 10. c socket發送失敗
- 11. 通過SOCKET發送文件
- 12. 如何發送並行POST請求Java
- 13. Udp Socket穩定發送,突發接收
- 14. 在C++和Java之間通過TCP Socket發送消息
- 15. Java Socket - 如何在3點之間發送和接收信息?
- 16. Java Socket不向服務器發送消息
- 17. java socket編程問題(發送和接收數據)
- 18. Socket的ArrayList無法發送消息到客戶端 - Java
- 19. 使用Java Socket發送HTTP響應時遇到麻煩
- 20. 通過Java發送對象Socket真的很慢
- 21. Java通過Socket發送和接收多條消息
- 22. Java Socket聊天,一些消息沒有發送
- 23. Java Socket客戶端向設備發送額外的字節
- 24. 無法從Web Socket發送任何數據到Java Scoket
- 25. 如何通過java中的TCP socket發送圖像
- 26. python Socket發送ascii命令並接收響應
- 27. Java Socket命令行參數
- 28. C#通過讀寫SOCKET到JAVA併發生一些併發/套接字問題
- 29. c socket發送字符串命令
- 30. 如何確保Socket發送數據?
它是UDP還是TCP? – Guillaume 2011-02-10 10:04:12