4
有人可以讓我知道如何通過多線程中的一個連接發送和接收數據。德爾福:通過一個套接字多線程發送數據
該模型是這樣的:
我所知道的是,如果所有的三個客戶端都在同一時間發送數據,「客戶端X」將獲得合併的所有接收到的數據,並「客戶端X」無法分離該數據以識別哪個部分來自哪個客戶端。
Delphi 2010,Indy,Win7。
對不起,如果我的英語不好,我希望你明白這個主意。
有人可以讓我知道如何通過多線程中的一個連接發送和接收數據。德爾福:通過一個套接字多線程發送數據
該模型是這樣的:
我所知道的是,如果所有的三個客戶端都在同一時間發送數據,「客戶端X」將獲得合併的所有接收到的數據,並「客戶端X」無法分離該數據以識別哪個部分來自哪個客戶端。
Delphi 2010,Indy,Win7。
對不起,如果我的英語不好,我希望你明白這個主意。
您需要實現鎖定機制,例如臨界區或互斥鎖,以防止多個線程完全同時寫入套接字。
當接收到發往多個線程的數據時,您只需要在一個線程中進行讀取操作,並根據需要將數據傳遞給其他線程。
無論採用哪種方式,您都需要構建數據,以便接收方知道一條消息的結束位置和下一條消息的開始位置。可以在發送消息內容之前發送消息的長度,也可以在消息之間發送一個永不會出現在消息本身中的唯一分隔符。
對,就像我想的那樣 – waza123