设为首页 - 加入收藏
广告 1000x90
您的当前位置:356388黄大仙原创资料 > 局域网广播 > 正文

Linux环境下局域网通信系统的设计与实现

来源:未知 编辑:admin 时间:2019-06-12

  客户机/服务器模型中,发起连接的计算机被称为客户机,接收并建立连接的计算机被称为服务器。

  根据此模型,计算机网络通信也多采用架设服务器并通过服务器转发的方式进行客户机之间的数据通信,然而,这种网络通信方式存在一定的缺点,主要在于:

  (1)如果网络中各主机间需要通信,就必须先要架设服务器,使用非常不方便。

  (2)各个网络主机之间的通信数据必须先由源客户机发给服务器,再通过服务器转发至目的客户机,因此数据并没有在客户机之间直接传递,通信效率较低。

  本文就是针对以上问题,以客户机/服务器模型为基础,设计出一种不需要服务器支持的局域网通信系统,使局域网内不同计算机问的通信不再需要通过服务器中转,实现了不同计算机问的数据的直接传输。

  ISO的OSI七层模型中,传输层有TCP和UDP两种协议,对应于这两种协议有流式套接字和数据报套接字。该系统使用了UDP广播消息和建立TCP连接进行数据传输的方式。

  多线程的并行处理可以提高程序的吞吐量,多任务的相互独立性也使程序在运行时间效率方面得到提高。网络通信中任务繁杂,因此将网络通信机制与多线程并行处理机制结合是一种有效的解决方案。该系统的通信任务主要通过3个线程并行完成,分别为:

  (1)负责收发广播的线程:该线程通过收发广播消息的形式,获得局域网内使用该系统的计算机信息。将局域网内使用该系统的计算机信息添加进本地链表;将局域网内退出该系统的计算机信息从本地链表中删除。本地链表维护了局域网内所有使用该系统的计算机的信息,为系统其他功能的实现提供数据。

  (2)负责监听端口建立连接的线程:该线程的功能类似于客户机/服务器模型中的服务器端,对局域网中的连接请求进行监听,对于新的连接请求建立新的Socket用于连接,并且对于不同的连接请求创建新的数据接收线程,用于处理连接后的消息传递以及文件传输等功能。

  (3)负责处理外部终端控制命令的线程:该线程用于该系统与用户的交互,处理外部终端的控制命令,并对于不同的命令实现相应的功能。

  广播消息线程使用UDP套接口,他与TCP套接口的主要区别在于通信双方不需要事先建立连接即可收发数据。该线程工作流程如下:

  (3)如果主机收到其他计算机“上线”广播消息,则将发送该广播消息的计算机信息添加进本地链表,并且回复“确认”广播消息;如果主机收到“确认”广播消息,则对发送该广播消息的计算机信息进行判断,如果链表中没有记录,则添加进本地链表;如果主机收到“离线”广播消息,则将发送该消息的计算机在本地链表中的信息删除。

  该线程监听TCP套接口,对于不同的连接请求创建新的数据接收线程并发处理。工作流程如下:

本文链接:http://klickieaiken.com/juyuwangguangbo/201.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top