Linux环境下局域网通信系统的设计与实现
1 引 言
客户机/服务器模型中,发起连接的计算机被称为客户机,接收并建立连接的计算机被称为服务器。根据此模型,计算机网络通信也多采用架设服务器并通过服务器转发的方式进行客户机之间的数据通信,然而,这种网络通信方式存在一定的缺点,主要在于:
(1)如果网络中各主机间需要通信,就必须先要架设服务器,使用非常不方便。
(2)各个网络主机之间的通信数据必须先由源客户机发给服务器,再通过服务器转发至目的客户机,因此数据并没有在客户机之间直接传递,通信效率较低。
本文就是针对以上问题,以客户机/服务器模型为基础,设计出一种不需要服务器支持的局域网通信系统,使局域网内不同计算机问的通信不再需要通过服务器中转,实现了不同计算机问的数据的直接传输。
2 系统框架设计
ISO的OSI七层模型中,传输层有TCP和UDP两种协议,对应于这两种协议有流式套接字和数据报套接字。该系统使用了UDP广播消息和建立TCP连接进行数据传输的方式。
多线程的并行处理可以提高程序的吞吐量,多任务的相互独立性也使程序在运行时间效率方面得到提高。网络通信中任务繁杂,因此将网络通信机制与多线程并行处理机制结合是一种有效的解决方案。该系统的通信任务主要通过3个线程并行完成,分别为:
(1)负责收发广播的线程:该线程通过收发广播消息的形式,获得局域网内使用该系统的计算机信息。将局域网内使用该系统的计算机信息添加进本地链表;将局域网内退出该系统的计算机信息从本地链表中删除。本地链表维护了局域网内所有使用该系统的计算机的信息,为系统其他功能的实现提供数据。
(2)负责监听端口建立连接的线程:该线程的功能类似于客户机/服务器模型中的服务器端,对局域网中的连接请求进行监听,对于新的连接请求建立新的Socket用于连接,并且对于不同的连接请求创建新的数据接收线程,用于处理连接后的消息传递以及文件传输等功能。
(3)负责处理外部终端控制命令的线程:该线程用于该系统与用户的交互,处理外部终端的控制命令,并对于不同的命令实现相应的功能。
系统结构如图1所示。
3 系统实现具体流程
3.1 发送和接收广播的线程设计流程
广播消息线程使用UDP套接口,他与TCP套接口的主要区别在于通信双方不需要事先建立连接即可收发数据。该线程工作流程如下:
(1)主机在局域网中广播本机“上线”消息;
相关文章
- 2022-05-09负荷预估信号在机组协调控制系统中的应用
- 2023-01-12基于DSP和CPLD的电机智能保护装置的设计
- 2022-06-22基于智能天线技术的TD-SCDMA系统应用研究
- 2024-06-05符合新标准的医疗设备泄漏电流测试技术研究
- 2024-05-22运用传播时间法的时差式超声流量计设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。