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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值