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

C#服務端與客戶端通信淺析

開發 后端
C#服務端與客戶端通信的建立是如何的呢?服務端的程序如何知道已經與一個客戶端建立起了連接?那么本文就向你介紹這方面的內容。

C#服務端與客戶端通信的建立:上面服務端、客戶端的代碼已經建立起了連接,這通過使用“netstat -a”命令,從端口的狀態可以看出來,但這是操作系統告訴我們的。那么我們現在需要知道的就是:服務端的程序如何知道已經與一個客戶端建立起了連接?

服務器端開始偵聽以后,可以在TcpListener實例上調用AcceptTcpClient()來獲取與一個客戶端的連接,它返回一個TcpClient類型實例。此時它所包裝的是由服務端去往客戶端的Socket,而我們在客戶端創建的TcpClient則是由客戶端去往服務端的。這個方法是一個同步方法(或者叫阻斷方法,block method),意思就是說,當程序調用它以后,它會一直等待某個客戶端連接,然后才會返回,否則就會一直等下去。這樣的話,在調用它以后,除非得到一個客戶端連接,不然不會執行接下來的代碼。一個很好的類比就是Console.ReadLine()方法,它讀取輸入在控制臺中的一行字符串,如果有輸入,就繼續執行下面代碼;如果沒有輸入,就會一直等待下去。

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

  1. class Server {  
  2. static void Main(string[] args) {  
  3. Console.WriteLine("Server is running ... ");  
  4. IPAddress ip = new IPAddress(  
  5. new byte[] { 127, 0, 0, 1 });  
  6. TcpListener listener = new TcpListener(ip, 8500);  
  7.  
  8. listener.Start();   // 開始偵聽  
  9. Console.WriteLine("Start Listening ...");  
  10.  
  11. // 獲取一個連接,中斷方法  
  12. TcpClient remoteClient = listener.AcceptTcpClient();  
  13.  
  14. // 打印連接到的客戶端信息  
  15. Console.WriteLine("Client Connected!{0} <-- {1}",  
  16.    remoteClient.Client.LocalEndPoint,  
  17.  remoteClient.Client.RemoteEndPoint);  
  18.  
  19. // 按Q退出  
  20. }  
  21. }  

運行這段C#服務端與客戶端通信實現代碼,會發現服務端運行到listener.AcceptTcpClient()時便停止了,并不會執行下面的Console.WriteLine()方法。為了讓它繼續執行下去,必須有一個客戶端連接到它,所以我們現在運行客戶端,與它進行連接。簡單起見,我們只在客戶端開啟一個端口與之連接:

  1. class Client {  
  2. static void Main(string[] args) {  
  3.  
  4. Console.WriteLine("Client Running ...");  
  5. TcpClient client = new TcpClient();  
  6. try {  
  7. client.Connect("localhost", 8500);  // 與服務器連接  
  8. catch (Exception ex) {  
  9. Console.WriteLine(ex.Message);  
  10. return;  
  11. }  
  12. // 打印連接到的服務端信息  
  13. Console.WriteLine("Server Connected!{0} --> {1}",  
  14. client.Client.LocalEndPoint,   
  15. client.Client.RemoteEndPoint);  
  16.  
  17. // 按Q退出  
  18. }  
  19. }  

此時C#服務端與客戶端通信實現,服務端、客戶端的輸出分別為:

  1. // 服務端  
  2. Server is running ...  
  3. Start Listening ...  
  4. Client Connected!127.0.0.1:8500 <-- 127.0.0.1:5188  
  5.  
  6. // 客戶端  
  7. Client Running ...  
  8. Server Connected!127.0.0.1:5188 --> 127.0.0.1:8500  

C#服務端與客戶端通信的基本情況就向你介紹到這里,希望對你了解和學習C#服務端與客戶端通信實現有所幫助。

【編輯推薦】

  1. C#網絡編程基本概念TCP淺析
  2. C#網絡聊天程序三大模式淺析
  3. C#服務端端口偵聽淺析
  4. C#服務端與客戶端連接實現淺析
  5. C#服務端與客戶端連接實現淺談
責任編輯:仲衡 來源: 博客園
相關推薦

2009-08-21 16:14:52

服務端與客戶端通信

2009-08-21 15:36:41

服務端與客戶端

2009-08-21 15:54:40

服務端與客戶端

2009-08-21 15:22:56

端口偵聽

2010-03-18 17:47:07

Java 多客戶端通信

2011-09-09 09:44:23

WCF

2023-03-06 08:01:56

MySQLCtrl + C

2009-08-21 17:48:43

C#網絡編程

2009-08-21 17:53:25

C#網絡編程客戶端程序

2022-01-05 08:03:23

C#通信Rest

2009-07-15 17:33:08

Swing客戶端

2009-08-06 17:12:13

C# WebServi

2009-08-21 16:37:54

C#客戶端程序

2009-08-21 16:27:44

C#服務端程序

2024-03-06 14:58:52

客戶端微服務架構

2020-03-19 08:00:00

客戶端KubernetesAPI

2010-11-19 14:22:04

oracle服務端

2023-04-03 08:13:05

MySQLCtrl + C

2011-08-25 13:42:57

IP隧道IPIPGRE

2015-01-13 10:32:23

RestfulWeb框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费av电影网站 | 欧美8一10sex性hd| 国产精品久久精品 | 中国免费黄色片 | 精品欧美激情精品一区 | 夜夜夜夜夜夜曰天天天 | 91精品国产91久久久久久最新 | 久久日韩粉嫩一区二区三区 | 中文字幕一区在线 | 久久久久一区二区三区四区 | 久久一日本道色综合久久 | 久草新在线 | 国产精品一区二区三区在线 | 美女国内精品自产拍在线播放 | 欧美成人激情 | 自拍亚洲| 日韩免费视频一区二区 | 天天天操天天天干 | 色悠悠久| 中文字幕一区二区三区精彩视频 | 99在线资源 | 一区日韩 | 成人免费在线小视频 | 成人一区二区三区 | 二区欧美| 视频一区欧美 | 久久中文字幕电影 | 国产a区| 在线观看av网站永久 | 黄色毛片在线观看 | 国产伦一区二区三区视频 | 久久精品综合网 | 国产片一区二区三区 | 91久久久久久久久久久 | 亚洲精品一区二区三区在线 | 免费黄色大片 | 欧美一区二区三区,视频 | 日韩精品免费看 | 欧美激情一区二区三区 | 欧美一级电影免费观看 | 国产精品久久久久久久久久免费看 |