簡體   English   中英

識別具有多個異步tcp客戶端的套接字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM