2012-10-28 86 views
1

假設我有一個偵聽TCP端口的服務器(通過TcpListener),並且我有五個到該服務器的不同連接(通過TcpClient)。我將如何通過流發送信息給每個人,而不會將錯誤的信息提供給錯誤的客戶端。
例如:
所有連接到服務器的五個客戶端。 我必須將消息「這是一條消息」發送給客戶端1,但我不想將該消息發送給客戶端2,3,4和5.我還希望將消息「這是另一條消息」發送給客戶端3和5,但不發送該消息給客戶端1,2和4.
我到底該如何去做這件事?對於每個Tcp連接,我都有一臺服務器,我如何分別管理每臺服務器?

回答

2

TcpListener類別具有方法AcceptSocketAcceptTcpClient。他們爲連接到服務器的每個客戶端返回一個不同的Socket(或TcpClient) - 您使用這些對象向各個客戶端發送數據。

+0

數據怎樣在這些數據中,我通過客戶端發送讀? – Phxvyper

+0

@NikkuAisuru我相信這些文檔能夠解決這個問題。 – millimoose

+0

因此,如果我使用... TcpListener TCListen = new TcpListener(「localhost」,90); TcpClient TClient = TCListen.AcceptTcpClient(); StreamWriter serverwriter = new StreamWriter(TClient.GetString()) then ... serverwriter.Write(「Message」); ... 它只會發送「消息」給一個人嗎? – Phxvyper

2

接受Socket或調用AcceptTcpClient之後,可以使用端點區分它們。如果您想知道要發送到哪個端點,您應該使用它們的IP和/或端口來區分它們。你可以參考這篇文章來看看如何做到這一點getting-the-ip-address-of-a-remote-socket-endpoint

編輯:你可以看到如何發送/接收例如here

相關問題