中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中怎么實現服務端與客戶端通信

發布時間:2021-07-19 15:34:36 來源:億速云 閱讀:134 作者:Leah 欄目:編程語言

C#中怎么實現服務端與客戶端通信,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

C#服務端與客戶端通信實現實例:

TcpClient client;   for (int i = 0; i <=2; i++) {      try {          client = new TcpClient();          client.Connect("localhost", 8500);  // 與服務器連接      } catch (Exception ex) {          Console.WriteLine(ex.Message);          return;      }       // 打印連接到的服務端信息      Console.WriteLine(  "Server Connected!{0} --> {1}",  client.Client.LocalEndPoint,   client.Client.RemoteEndPoint);  }

C#服務端與客戶端通信問題:如果服務端代碼不變,我們先運行服務端,再運行客戶端,那么接下來會看到這樣的輸出:

// 服務端  Server is running ...  Start Listening ...  Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5226   // 客戶端  Client Running ...  Server Connected!127.0.0.1:5226 --> 127.0.0.1:8500  Server Connected!127.0.0.1:5227 --> 127.0.0.1:8500  Server Connected!127.0.0.1:5228 --> 127.0.0.1:8500

就又回到了本章第2.2小節“多個客戶端與服務端連接”中的處境:盡管有三個客戶端連接到了服務端,但是服務端程序只接收到了一個。這是因為服務端只調用了一次listener.AcceptTcpClient(),而它只對應一個連往客戶端的Socket。但是操作系統是知道連接已經建立了的,只是我們程序中沒有處理到,所以我們當我們輸入“netstat -a”時,仍然會看到3對連接都已經建立成功。

為了能夠接收到三個客戶端的連接,我們只要對服務端稍稍進行一下修改,將AcceptTcpClient方法放入一個do/while循環中就可以了:

C#服務端與客戶端通信實現實例:

Console.WriteLine("Start Listening ...");   while (true) {      // 獲取一個連接,同步方法      TcpClient remoteClient =   listener.AcceptTcpClient();      // 打印連接到的客戶端信息      Console.WriteLine("Client Connected!{0} <-- {1}",  remoteClient.Client.LocalEndPoint,   remoteClient.Client.RemoteEndPoint);  }

這樣看上去是一個死循環,但是并不會讓你的機器系統資源迅速耗盡。因為前面已經說過了,AcceptTcpClient()再沒有收到客戶端的連接之前,是不會繼續執行的,它的大部分時間都在等待。另外,服務端幾乎總是要保持在運行狀態,所以這樣做并無不可,還可以省去“按Q退出”那段代碼。此時再運行代碼,會看到服務端可以收到3個客戶端的連接了。

C#服務端與客戶端通信實例運行結果:

Server is running ...  Start Listening ...  Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5305  Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5306  Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5307

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

思茅市| 鄯善县| 衡东县| 曲靖市| 观塘区| 虹口区| 崇左市| 平谷区| 汉阴县| 山阴县| 诸暨市| 云林县| 碌曲县| 临江市| 油尖旺区| 惠水县| 米林县| 阆中市| 铜山县| 德惠市| 独山县| 忻州市| 盐边县| 无为县| 仁怀市| 南投市| 巴彦淖尔市| 锦屏县| 定日县| 大庆市| 许昌县| 田阳县| 平顶山市| 随州市| 苍南县| 乌兰浩特市| 汤原县| 札达县| 杨浦区| 祥云县| 礼泉县|