簡體   English   中英

將數據中繼到一個或多個客戶端的套接字服務器。 C#

[英]Socket server that relays the data to one or more clients. C#

您好,我正在嘗試創建各種代理服務器。
目標是讓一個客戶端(啟動)連接到套接字服務器,然后讓套接字服務器逐字節中繼到另一台服務器。 最初的概念只是中間人。 我已經從MSDN中搜索並找到了代碼以創建套接字服務器,並將數據發送回客戶端以及新連接。 我在創建只能來回中繼的服務器時遇到麻煩,但仍在偵聽新連接。

任何提示或指示都會有所幫助。

本文與我嘗試做的最接近: 可以“中繼”套接字嗎?

客戶端-> MYSERVER->目標(反向)

客戶端應該能夠與目的地進行通信,而無需進行任何修改,就像我的服務器位於中間一樣。

謝謝!

更新:我確實有一個套接字服務器,可以讀取線路上的所有字節。 然后,我需要將那些字節復制到新的套接字中,並中繼回接收到的字節。

我看不出有什么問題...。 只需創建服務器類,即可使用Socket.AcceptAsync接受套接字。 為每個接受的套接字創建Session類。 在會話類中,使用Socket.ConnectAsync連接到Destination。 建立連接后,開始使用Socket.ReceiveAsync從兩個套接字讀取數據。 收到數據后,將其寫入對面的套接字。 對於更簡單的方法,您可以使用NetworkStream-因為Socket SendAsync / Send不隔離發送全部數據,而NetworkStream BeginWrite / Write則隔離。

另外,如果不需要性能,則可以使用在xxxAsync中插入的Accept / Connect / Receive方法。

也許我們可以使用現有的庫,例如DeleGate 我們已經在系統中實現了這一點。 您可以將其安裝為Windows服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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