首页 > 范文大全 > 正文

基于TCP协议的C#多线程数据采集程序的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于TCP协议的C#多线程数据采集程序的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:该文阐述tcp通信的原理,多线程的概念,进行了一个多线程数据接收程序设计,并使用C#编码实现

关键词: 多线程;C#;TCP

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)36-8624-02

某项目有一批终端设备定时发送定位信息到指定的服务器,服务器接收到信息处理后保存到数据库,以备后续显示使用。终端设备同服务器间通信采用TCP协议,一次信息发送完成后终端设备和服务器连接断开。设备之间没有信息交流,互相独立。信息发送的时间由终端设备自行决定。

1 关键技术

1.1 TCP通信原理

TCP协议是传输控制协议,适用于点到点,可靠通信。把通信发起方称为客户,把客户要通信的另一方称为服务器。客户把请求发给服务器,服务器收到客户的请求后提供服务。所以,TCP通信有两方,客户和服务器。在本应用中,终端设备是TCP客户,接收程序是TCP服务器。

1.2 多线程

线程是程序中的一个执行流。是CPU调度和分派的基本单位。一个进程可以包含一个或多个线程,并且同一个进程内的多个线程共享一块内存和资源。

2 需求分析

结合上述技术分析和应用要求,本应用中的终端机是TCP客户,要开发的程序是TCP服务器,用于接收TCP客户发送的定位信息并保存到数据库。终端设备有多台,且它们之间没有联系,任何终端信息发送时间是随机的。

3 系统分析

TCP协议要求通信双方首先要建立连接,然后双方才能进行信息的交流,最后撤除连接。

服务器应设置有监听端口,工作在监听状态。当客户想同服务器通信时,客户可以向该端口发送连接请求,服务器收到连接请求后,可以建立新的通信链路以便客户和服务器进行信息交流。等到客户的通信结束后,服务器返回监听状态。在返回监听状态之前,服务器不能为其他客户提供服务,因此,在单线程模式,当前客户同服务器间的通信未结束前,其他客户无法连接服务器,只有等到它们的通信结束,服务器重新回到监听状态。这显然是低效的,不合理的。为了快速的为更多的客户服务,服务器应尽快地回到监听状态。 为了到达此目的,只有采用多线程工作模式。即,服务器同客户建立连接后,服务器和客户的通信和连接的撤除交由新的线程完成,自己迅速返回到监听状态, 这必然的缩短了其他客户的等待时间,提高了信息传输的效率。

4 系统设计

设计思路:建立一个TCP服务器,运行后在指定的端口监听,当收到客户的连接请求后,会创建新的线程负责随后的双方的通信,自己则回到监听状态继续监听有无其他客户连接请求。新创建的线程在完成数据的接收后,断开连接,释放资源。

6 测试及结果分析

测试过程:运行本服务程序,设置本机监听端口和协议,进入监听状态。设置终端设备的数据接收服务器IP地址为114.96.57.176(需在路由器做映射到内网IP地址:192.168.1.100),端口为5000,程序接收到终端设备发送的位置信息。结果见图2。

图2 程序运行显示界面截图

从图2显示的信息看,信息已正确接收,程序运行正常。

参考文献:

[1] Robinson S. c#高级编程[M].北京:清华大学出版社,2002.

[2] Casad J.TCP/IP入门经典[M].井中月,译.北京:人民邮电出版社,2009.

[3] 周有杰.Visual C#.Net网络核心编程[M].北京:清华大学出版社,2002.