首页 > 文章中心 > 正文

网络通信系统的软件设计

网络通信系统的软件设计

网络通信系统的软件设计

1WindowsCE中的网络通信

WindowsCE6.0在网络通信方面提供了完善的软件支持,包括:(1)提供与Unix完全兼容的SocketAPI函数,使其他平台的网络应用程序很容易移植到WindowsCE中,而WindowsCE中的应用程序也容易移植到其他平台中;(2)操作系统本身也包含大量各种网络协议,如TCP/IP、UDP、ICMP等;(3)操作系统本身提供各种网络服务,如IIS、TFTP;(4)提供小端口网卡驱动程序接口,只需编写网卡的小端口驱动程序就能利用该网卡实现上面提供的各种网络协议及网络服务;

2面向连接的TCP通信

TCP通信是一种面向连接的、可靠的、基于字节流的传输层通信协议。具有五大特点:①面向连接的传输;②端到端的通信;③高可靠性;④全双工方式传输;⑤采用字节流方式。TCP通信是指在进行通信之前,通信双方必须建立连接,通信结束之后终止其连接。也就是指当两台计算机上的两个应用程序之间利用TCP进行通信时,源和目标之间会建立一个虚拟连接,这个连接一旦建立,两台计算机之间就可以把数据当作一个双向字节流进行交换。TCP建立的连接是端到端的连接,即源与目标之间的连接。TCP协议向应用层提供了面向连接的服务,以确保网络上所传送的数据包被完整、正确、可靠的接收。一旦数据有损伤或丢失,则由TCP负责重传,应用层不参与解决。本文在WindowsCE中实现一个TCP客户端应用程序,向PC机端的TCP服务器请求连接,连接成功后,客户端应用程序就可以与PC端的TCP服务端应用程序进行TCP通信了,连接的流程图如图2所示。在网络应用中,网络通信一般可通过Socket实现。Socket编程均采用客户机/服务器模式。

3软件系统设计

由于在WindowsCE下的TCP/IP协议处理方法是分别在服务器端和客户机端创建Socket程序,建立通信联系的,下面就分别给出服务器端Socket和客户机端Socket的实现方法。调用的主要函数有:创建套接字函数socket、监听函数listen、等待连接函数accept、数据接收函数read、数据发送函数write等。

3.1服务器端socket操作(1)建立套接字函数socket;(2)绑定地址和端口函数bind,将该socket与本机地址和端口号捆绑;(3)建立套接口队列函数listen,在监听端口上监听客户机的连接请求;(4)接收连接函数accept,当accept捕捉到一个连接请求时,就建立连接线路并返回一个新的通信文件描述符;(5)处理连接函数read/write;(6)关闭套接口close。服务器端利用VisualC++编写可运行于PC机上的TCP通信应用程序。该程序调用Windows平台提供的SocketAPI函数,使用TCP协议。服务器端首先创建一个socket,等待与客户机端的连接,连接成功后进行数据的传送。

3.2客户机端socket操作(1)创建客户端的Socket客户端应用程序首先调用WSAStartup函数来与Winsock的动态连接库建立关系,然后调用socket来建立一个TCPsocket。socket函数第一个参数只能是AF_INET,socket函数的第二个参数设置位SOCK_STREAM,其第三个参数指定为0。(2)向服务器提出连接申请对客户端来说,它不需要绑定,可以直接连接服务器端。调用connect函数来提出与服务器端建立连接的申请,首先定义一个地址结构体变量,并对其成员进行赋值,设定服务器端的IP地址和端口。(3)和服务器端进行通信当建立连接后,就可以调用send函数向服务器端发送数据了,之后调用recv函数接收服务器发送的数据。(4)关闭套接字当完成通信后,调用closesocket函数关闭套接字,释放为此套接字分配的资源。最后调用WSACleanup函数,终止对套接字库的使用。客户端利用VisualStudio2005编写一个可运行于WindowsCE6.0操作系统上的应用程序,该程序调用WindowsCE平台提供的SocketAPI函数,使用TCP协议,通过以太网芯片驱动。

系统测试

用网线连接PC机与网络终端,在网络终端中的以太网芯片设置WindowsCE的IP地址,确保通过PC可以Ping通网络终端。在PC机上运行TCP测试工具软件,设置本机端口号为1011,然后点击“Connection”按钮,启动一个TCP服务。在WindowsCE中,点击Embedded_TCP.exe,在跳出的对话框中填写要连接的服务端地址(即PC机地址,为19168.22)和端口号(为1011),然后单击“connect”按钮,创建成功,按钮会变成不可用,否则会报错。这时,TCP测试工具软件中监听到一个客户端连接,就可以与客户端进行网络通信了。

结语

本文根据WindowsCE操作系统的特点和TCP协议,利用Socket套接字编程,设计了在WindowsCE下的网络通信软件,并在网络终端中运行成功。软件可实现嵌入式网络终端和PC机之间的通信功能,具有较大的灵活性和扩展性。在此基础上可开发文本传输、通信故障检测等应用软件。

作者:顾亭亭单位:南京航空航天大学金城学院