成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#服務(wù)端與客戶端通信詳解

開發(fā) 后端
C#服務(wù)端與客戶端通信詳解主要向你介紹了如果有多個客戶端發(fā)動對服務(wù)器端的連接會怎么樣的情況,希望對你了解服務(wù)端與客戶端通信有所幫助。

C#服務(wù)端與客戶端通信之獲取多個客戶端連接的情況是如何處理的呢?讓我們來看看:

C#服務(wù)端與客戶端通信的問題:現(xiàn)在我們再接著考慮,如果有多個客戶端發(fā)動對服務(wù)器端的連接會怎么樣,為了避免你將瀏覽器向上滾動,來查看上面的代碼,我將它拷貝了下來,我們先看下客戶端的關(guān)鍵代碼:

C#服務(wù)端與客戶端通信實(shí)現(xiàn)實(shí)例:

  1. TcpClient client;  
  2.  
  3. for (int i = 0; i <=2; i++) {  
  4.     try {  
  5.         client = new TcpClient();  
  6.         client.Connect("localhost", 8500);  
  7. // 與服務(wù)器連接  
  8.     } catch (Exception ex) {  
  9.         Console.WriteLine(ex.Message);  
  10.         return;  
  11.     }  
  12.  
  13.     // 打印連接到的服務(wù)端信息  
  14.     Console.WriteLine(  
  15. "Server Connected!{0} --> {1}",  
  16. client.Client.LocalEndPoint,  
  17.  client.Client.RemoteEndPoint);  
  18. }  

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

  1. // 服務(wù)端  
  2. Server is running ...  
  3. Start Listening ...  
  4. Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5226  
  5.  
  6. // 客戶端  
  7. Client Running ...  
  8. Server Connected!127.0.0.1:5226 --> 127.0.0.1:8500  
  9. Server Connected!127.0.0.1:5227 --> 127.0.0.1:8500  
  10. Server Connected!127.0.0.1:5228 --> 127.0.0.1:8500  

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

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

C#服務(wù)端與客戶端通信實(shí)現(xiàn)實(shí)例:

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

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

C#服務(wù)端與客戶端通信實(shí)例運(yùn)行結(jié)果:

  1. Server is running ...  
  2. Start Listening ...  
  3. Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5305  
  4. Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5306  
  5. Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5307 

C#服務(wù)端與客戶端通信的基本情況就向你介紹到這里,希望對你了解和學(xué)習(xí)C#服務(wù)端與客戶端通信有所幫助。

【編輯推薦】

  1. C#網(wǎng)絡(luò)聊天程序三大模式淺析
  2. C#服務(wù)端端口偵聽淺析
  3. C#服務(wù)端與客戶端連接實(shí)現(xiàn)淺析
  4. C#服務(wù)端與客戶端連接實(shí)現(xiàn)淺談
  5. C#服務(wù)端與客戶端通信淺析
責(zé)任編輯:仲衡 來源: 博客園
相關(guān)推薦

2009-08-21 15:59:22

服務(wù)端與客戶端通信

2009-08-21 15:36:41

服務(wù)端與客戶端

2009-08-21 15:54:40

服務(wù)端與客戶端

2010-03-18 17:47:07

Java 多客戶端通信

2011-09-09 09:44:23

WCF

2023-03-06 08:01:56

MySQLCtrl + C

2022-01-05 08:03:23

C#通信Rest

2009-08-06 17:12:13

C# WebServi

2009-08-21 15:22:56

端口偵聽

2024-03-06 14:58:52

客戶端微服務(wù)架構(gòu)

2020-03-19 08:00:00

客戶端KubernetesAPI

2010-11-19 14:22:04

oracle服務(wù)端

2023-04-03 08:13:05

MySQLCtrl + C

2010-05-12 15:46:51

Subversion客

2009-06-10 16:25:02

2015-01-13 10:32:23

RestfulWeb框架

2009-08-07 13:55:35

Java客戶端類調(diào)用C# WebServi

2009-03-04 10:27:50

客戶端組件桌面虛擬化Xendesktop

2010-05-31 10:11:32

瘦客戶端

2021-10-19 08:58:48

Java 語言 Java 基礎(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产成人黄色 | 亚洲精品欧美一区二区三区 | 色综合色综合色综合 | 久久久精选 | 婷婷综合 | 国产特级毛片 | av在线免费观看网站 | 国产一区二 | 日韩欧美中文字幕在线观看 | 365夜爽爽欧美性午夜免费视频 | 伊人网站在线观看 | 亚洲有码转帖 | 日韩精品视频一区二区三区 | 亚洲一区二区三区免费观看 | 黄色在线 | 国产成人区 | 久久久国产一区二区三区 | 国产一级免费视频 | 精品国产乱码久久久久久影片 | 一级做a爰片性色毛片 | 久久噜| 国产情侣在线看 | 亚洲一区二区久久 | 国产欧美日韩视频 | 91视频网址 | 这里精品| 一级片在线免费看 | 九九精品在线 | 99久久精品国产一区二区三区 | 一本岛道一二三不卡区 | 久久精品国产清自在天天线 | 亚洲精品一区二区 | 欧美激情一区二区 | 久久久久国产 | 成人不卡视频 | 91大神新作在线观看 | 欧美日韩综合 | 欧美精品一区二区免费视频 | 免费在线观看一区二区 | 色偷偷人人澡人人爽人人模 | 免费成人高清在线视频 |