C#服务端与客户端连接实现浅谈

开发 后端
C#服务端与客户端连接实现在这里向你介绍了一个服务器端口对多个客户端如何连接的问题,希望对你了解和学习C#服务端与客户端连接有所帮助。

C#服务端与客户端连接实现的由来:那么既然一个服务器端口可以应对多个客户端连接,那么接下来我们就看一下,如何让多个客户端与服务端连接。如同我们上面所说的,一个TcpClient就是一个Socket,所以我们只要创建多个TcpClient,然后再调用Connect()方法就可以了:

C#服务端与客户端连接实现实例:

  1. class Client {  
  2. static void Main(string[] args) {  
  3.  
  4. Console.WriteLine("Client Running ...");  
  5. TcpClient client;  
  6. //C#服务端与客户端连接实现  
  7. for (int i = 0; i <= 2; i++) {  
  8. try {  
  9. client = new TcpClient();  
  10. client.Connect("localhost", 8500); // 与服务器连接  
  11. catch (Exception ex) {  
  12. Console.WriteLine(ex.Message);  
  13. return;  
  14. }  
  15. //C#服务端与客户端连接实现  
  16. // 打印连接到的服务端信息  
  17. Console.WriteLine("Server Connected!{0} --> {1}",  
  18. client.Client.LocalEndPoint, client.Client.RemoteEndPoint);  
  19. }     
  20.  
  21. // 按Q退出  
  22. }//C#服务端与客户端连接实现  
  23. }  

上面代码最重要的就是client = new TcpClient()这句,如果你将这个声明放到循环外面,再循环的第二趟就会发生异常,原因很显然:一个TcpClient对象对应一个Socket,一个Socket对应着一个端口,如果不使用new操作符重新创建对象,那么就相当于使用一个已经与服务端建立了连接的端口再次与远程建立连接。

此时,如果在“命令提示符”运行“netstat -a”,则会看到类似下面的C#服务端与客户端连接实现实例的输出:

  1. TCPjimmy:8500 0.0.0.0:0         LISTENING  
  2. TCPjimmy:8500 localhost:10282 ESTABLISHED  
  3. TCPjimmy:8500 localhost:10283 ESTABLISHED  
  4. TCPjimmy:8500 localhost:10284 ESTABLISHED  
  5. TCPjimmy:10282localhost:8500  ESTABLISHED  
  6. TCPjimmy:10283localhost:8500  ESTABLISHED  
  7. TCPjimmy:10284localhost:8500  ESTABLISHED 

可以看到创建了三个连接对,并且8500端口持续保持侦听状态,从这里以及上面我们可以推断出TcpListener的Start()方法是一个异步方法。


C#服务端与客户端连接实现的情况就向你介绍到这里,希望对你了解和学习C#服务端与客户端连接实现有所帮助。

【编辑推荐】

  1. C#异步传输字符串客户端的实现
  2. C#网络编程基本概念TCP浅析
  3. C#网络聊天程序三大模式浅析
  4. C#服务端端口侦听浅析
  5. C#服务端与客户端连接实现浅析
责任编辑:仲衡 来源: 博客园
相关推荐

2009-08-21 15:36:41

服务端与客户端

2009-08-21 16:14:52

服务端与客户端通信

2009-08-21 15:59:22

服务端与客户端通信

2011-09-09 09:44:23

WCF

2023-03-06 08:01:56

MySQLCtrl + C

2010-03-18 17:47:07

Java 多客户端通信

2021-10-19 08:58:48

Java 语言 Java 基础

2022-09-05 14:36:26

服务端TCP连接

2009-08-06 17:12:13

C# WebServi

2024-03-06 14:58:52

客户端微服务架构

2009-08-21 17:53:25

C#网络编程客户端程序

2010-11-19 14:22:04

oracle服务端

2023-04-03 08:13:05

MySQLCtrl + C

2009-08-21 15:22:56

端口侦听

2022-01-05 08:03:23

C#通信Rest

2020-03-19 08:00:00

客户端KubernetesAPI

2010-07-22 12:24:31

Telnet客户端

2015-01-13 10:32:23

RestfulWeb框架

2009-08-21 14:33:15

C#异步传输字符串

2011-04-07 09:33:01

Activex
点赞
收藏

51CTO技术栈公众号