数据通信软件开发与基本原理分析论文(第2页)
本文共计3508个字,预计阅读时长12分钟。【 字体:大 中 小 】
3Socket软件数据通信测试
3.1流式套接口
利用socket的数据流进行通信。套接口的工作过程如下:(1)用socket()函数在服务器端建立一个通信的端点;(2)用bind()函数绑定这个端点的地址;(3)在服务器端使用listen()函数侦听连接请求,当远程的客户机使用connect()函数连接listen()函数正在监听的端口时,使用accept()函数进行处理。当accept()函数处理了连接请求后,将会生成一个新的描述这个连接端口的套接字,利用这个套接字就可以发送和接收数据了。若listen()始终未侦听到连接请求,则服务器会在accept()处阻塞,直至有连接请求到来。
3.2Socket软件数据通信测试
TCP/UDPSocket调试工具提供了TCPClient、TCPServer、UDPClient、UDPServer、UDPGroup共5种Socket调试方案。下面是TCPClient方案的调试。在调试过程中,两台PC机用两个光纤收发器和一根光纤连接进行数据的通信。(1)创建TCPClient;(2)向服务器绑定的端口号连接;(3)双方通信,如图3和图4所示。图3和图4只是客户端的数据收发情况,服务进程要先于客户请求启动,即只有服务器处在监听状态时,客户端的连接请求才有可能被服务器接收到。
4VC++实现Socket通信编程
4.1CSocket类编程基本原理
(1)连接建立阶段:首先服务器中的'监听套按字调用listen()对端口进行监听,客户端的套接字调用connect()向服务器端的特定端口发出链接请求,客户机端会调用套接字的OnConnect()告知连接的结果,可以判断是否链接成功并查询失败的原因。如果成功连接,表示客户机和和服务器之问建立起了一个通信的通道,为通信做好准备。(2)通信阶段:这是整个过程的核心部分,相对简单,就是数据的发送,调用send(),receive()函数。(3)拆除连接阶段:在传完数据之后,调用Close()关闭套接字,释放所分配的资源。当对方的套接字被关闭后,框架会调用OnConnecl()函数通知。
4.2编程实现
Socket数据通信在VisualC++6.0中用程序做一个TCPSocket软件的客户端,并能够通信,操作步骤如下:图6建立MFCAppWizard[EXE]工程(1)创建MFCAppWizard[EXE]工程;打开VisualC++6.0界面,单击“文件/新建”如图6;(2)创建应用程序选择基本对话框;(3)完成客户端会话框;(4)添加一个新类;(5)添加成员变量;(6)添加成员函数OnConnect();(7)添加控件程序;(8)在CSocket_002DlgOnInitDialog()中添加代码。服务端和客户端的通信如图7所示。从图7可以看出,编程实现的客户端可以用来数据通信。
5总结
本设计在TCPSocket的基础上,完成了数据通信软件的开发。首先,在两台PC机上,用光纤收发器进行数据通信的测试,熟悉了数据通信的基本流程。然后,在VC++开发环境下,熟悉开发环境,创建了一个名“为S ocket_002”的MFCAppWiz—ard[EXE]工程。在这个工程下,建立客户端和服务器端的对话框,生成一个源程序。在该程序中生成变量,添加控件程序,进行编译和运行,生成一个.EXE文件。一个TCPSocket的通信软件的开发就完成了。用开发出的软件,进行了客户端和服务器端的通信[3,4]。本设计表明基于VC++开发环境可以方便地开发以太网的数据通信的应用,建立数据通信的测试和应用系统,完成数据通信的任务。在此基础上还可以在其他的操作系统上完成软件的数据通信开发,例如Lnix,Unix,WindowsCE操作系统,拓展更宽广的应用领域。
[1]王国河.基于实时以太网EtherCAT的多轴网络运动控制系统设计[D].广州:华南理工大学,2012.
[2]马殷元.物流装备控制和监控系统关键技术研究[D].兰州:兰州交通大学,2017.
[3]丁莉.基于ARM9的远程频率采集系统设计[J].微电子学与计算机,2011,28(7):128-131.
[4]董武,陆利坤,李业丽.基于W5300的以太网和串口数据相互转换系统设计[J].制造业自动化,2013,35(2):139-142.

