[英]Identify the socket with multiple async tcp clients
我的應用程序有許多tcpclients,可用於在指示時更新數百個服務器。 我在設計時遇到了一個小而重要的問題。
我的程序從隊列中取出傳出消息,並從一系列客戶端中選擇一個可用的客戶端,我將其稱為client1。 它使用BeginConnect在tcpclient上啟動連接,並發出回調方法。 然后,程序從隊列和將發送它們的tcpclients移至其他消息。
當client1發生回調時,我的程序將獲得一個AsyncResult,我可以從中解析套接字。
這是我的問題。 我如何知道我擁有哪個套接字或TCPClient? 這很重要,因為我需要知道要在此連接的客戶端上發送哪個消息。
我查看了套接字,但沒有找到name屬性。
如何識別套接字,以便知道正確的消息傳遞對話?
謝謝!
經過更多的研究和研究,我意識到回調將傳遞任何System.Object。 因此,答案很簡單,就像將TCPClient包裝在一個具有可以確定其目的的屬性的類中一樣。
在我的情況下,一個簡單的類,帶有一個Socket,消息的字符串,IP的字符串和Port的int,足以處理返回時的情況。 只要記住您必須將IAsyncResult.AsyncState強制轉換回包裝器類的類型即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.