我有一個c語言的服務器,它通過來自客戶端的選擇請求來接受。我創建了一些線程來服務於客戶請求的操作。直到這一點我沒事。但是現在我想擁有一個內部套接字,所以創建的線程將與主線程進行通信,通過它發送響應。任何想法如何解決這一切?內部插座和外部插座連同tcp
0
A
回答
1
這很容易。你想用這個是socketpair(2)
。爲每個線程創建一個對,然後完成。
0
@Guillaume是對的。但爲什麼要經歷所有的複雜性。
我只會這樣做,如果你打算有一臺服務器,有時運行一個程序中的所有線程通過套接字進行通信,有時在具有通過常規套接字進行通信的「工作線程服務器」的不同計算機上運行。
除非您需要像這樣具有異國情調,否則您可以在線程之間使用共享內存塊進行通信(在適當的情況下使用互斥鎖進行保護)。例如。將任務對象從調度程序線程傳遞到工作線程。並且忘記了線程間通信的序列化和反序列化數據的複雜性。
相關問題
- 1. 插座例外TCP監聽
- 2. POSIX插座VS網絡插座VS Windows TCP/IP插座
- 3. 指定插座內部的常規插座
- 4. 無法連接到插座內外部服務器(API)10
- 5. TCP插座上的長連接
- 6. 回調插座的內部IO
- 7. 讀TCP-Destionation通過插座
- 8. PHP插座/ TCP套接字
- 9. Udp封裝在Tcp插座
- 10. Flex插座到插座
- 11. 插座與插座集合
- 12. 設置類的UITableView「隱藏」插座的插座部分
- 13. 連接到插座
- 14. 打開的插座和連接的插座有什麼區別?
- 15. Python36和插座
- 16. 插座和Winapi32
- 17. 插座和COBOL
- 18. 插座和DatagramChannels
- 19. 多線程和插座/ TCP [VB.NET]
- 20. 連接到外部插座的Heroku上的進程
- 21. 如何通過外部IP連接插座(Mac)
- 22. NS-3插座連接到外部程序
- 23. 同步插座是否仍然允許外部用戶操作?
- 24. 爲什麼提高:: ASIO :: IP :: TCP ::插座和插座()不能是const
- 25. 面料插座例外:連接超時
- 26. 訪問socket.on(「連接」)封閉外插座
- 27. 紅寶石插座連接到外面
- 28. 在非插座上的插座操作:在設置插座選項和裝訂插座時出錯
- 29. kubernetes卷和插座
- 30. 插座和DataInputStream所
我知道一個共享內存將是一個更容易的想法,但不幸的是我想使它與這種「異國情調」的方式工作。所以我會盡力用Guillaume的方式找到方式。非常感謝btw。 – harry77
這取決於。如果工作調度機制已經構建在套接字上,那麼使用套接字肯定更容易。如果您切換共享內存隊列,則必須在一次調用中輪詢套接字,並在另一次調用中輪詢套接字。您可以使用套接字(寫入一個字節)執行通知,但通過共享內存執行實際的通信。取決於交換多少東西,這可能是一個很好的折衷 – Guillaume