簡體   English   中英

如何使用端口從服務器向客戶端發送消息?

[英]How I can send message from server to client using the port?

我正在使用Tcplistener在端口上偵聽請求。 當請求來自客戶端時,我想知道發出請求的客戶端ip。 問題是:服務器和所有客戶端采用相同的IP

所以我決定通過端口從服務器向客戶端發送消息...我在google上搜索了很多內容,但我不知道如何使用端口從服務器向客戶端發送消息? 那么有人可以幫助我嗎?

客戶端沒有監聽傳入的連接,因此服務器向客戶端發送消息的唯一方法是使用現有的連接,該連接先前是由客戶端建立的。

在現有連接上發送消息時,您不必指定端口號,您的服務器可以使用:

Socket handlerSocket = tcpListener.AcceptSocket();
// a connection is now established, "handlerSocket" can be used for both receiving and sending messages
handlerSocket.Send(...);

您的客戶端當前正在發送數據並立即關閉連接,但是您必須對其進行修改以從NetworkStream讀取數據才能接收任何內容。

有大量的教程可用,我認為您只是在Google上搜索了錯誤的關鍵字。 您是否嘗試過類似c# chat tutorial

您都在同一台計算機上運行它們。 這就是為什么IP總是相同的原因。

這種事情的SOP有兩個端口:一個控制端口和一個數據端口。

它的工作方式是:

  • 控制端口用於啟動連接。
  • 成功連接后,服務器和客戶端將協商一組用於數據的端口(本地服務器數據端口和遠程客戶端數據端口)。
  • 服務器從本地服務器數據端口建立到遠程客戶端數據端口的連接。
  • 客戶端通過控制端口發出數據請求(例如命令)。
  • 服務器通過數據端口將信息發送回去。

暫無
暫無

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

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