打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
12篇学通C#网络编程——第四篇 TCP应用编程

年底了,人浮躁多了,沉不下去心研究技术了,不过昨天终于抢到了回家的票,很开心。

言归正卷,在WCF出来之后,可能我们玩这些原始的TCP越来越少了,我们知道WCF对TCP进行了再一次的包装,第一反应给我们的或许是

同构系统用TCP,异构系统用HTTP,那么问题来了,异构系统到底可不可以用TCP呢?至少WCF是玩不了的,因为其他语言没有针对.net的“服务

引用”,也没有什么ChannelFactory给你去玩,如果你是一定要追求性能的话,原始的TCP会助你一臂之力的。

我们知道最最原始的是玩Socket,由于Socket比较复杂,但是最灵活,C#里面提供了两个简化的包装类:TcpListener和TcpClient。

一:TcpListener

这个是作为服务器端程序而存在的,我们来看看如何使用这服务端。

1: 开启监听地址

2:好了,已经开启了,服务端程序开始监听该端口的客户端请求了,那么如何获取该请求呢?简单,listener的AcceptTcpClient属性搞定。


3:我们知道TCP传的是字节流,通过myclient.GetStream()就可以获取一个NetworkStream,利用这个Stream就可以进行收发信息了。

<1> 收操作:


<2>发操作:也就是所谓的返回值

  这里要注意的地方就是AcceptTcpClient是阻塞线程的,直到收到客户端请求才算建立了一个TCP连接,在服务端处理的过程中,后续的客户端的请求将

会处理等待直到前一个请求处理完,说了这么多,就是每一个请求我们都建议开一个线程专门为其服务,类似这样。


好了,服务器端大概就是这个样子,再有的就是一些相关属性配置了,像wcf那样什么opentime,sendtime啥的。

二:TcpClient

客户端也很简单,只要我们Connect一下端口,然后通过NetworkStream再Send一些数据就OK了。


三:模拟

最后我们模拟下,客户端开启100个线程,每个线程请求100次,服务器端对每个线程都用工作线程去处理,是不是找到了netTcpBinding的

感觉,最后一个大家都懂的道理就是线程多了不是好事情。

服务端:


客户端:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用C#实现基于TCP协议的网络通讯--51编程网
C# TCP Socket通信服务端
WCF之旅 (11): 再谈WCF的双向通讯-基于Http的双向通讯 V.S. 基于TCP的双向通讯
想用自带的websocket控件写winform客户端,哪里有ClientWebSocket的使用demo有吗?
C#网络编程(同步传输字符串) - Part.2 - C# 编程 - TraceFact....
C#网络编程(同步传输字符串)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服