Windows Sockets控件在网络通信中的程序实现

2014-08-07 12:03
天津科技 2014年11期
关键词:参考模型文本框客户机

万 鹏

(天津市科技档案馆 天津 300011)

Windows Sockets控件在网络通信中的程序实现

万 鹏

(天津市科技档案馆 天津 300011)

Windows Sockets是基于TCP/IP参考模型,应用于微软Windows系统的网络编程接口,因其具有开放和支持多协议的机制而得到了广泛应用。讨论了 Windows Sockets的通信机理及通过 Visual Basic编程实现网络通信的过程。

TCP/IP参考模型 传输层 Windows Sockets Visual Basic 服务器 客户机

1 网络编程基础

1.1 TCP/IP参考模型简介

TCP/IP参考模型是Internet的基础,它定义了电子设备如何接入 Internet,以及数据在设备之间传输的标准。TCP/IP参考模型将诸多网络协议分为 4个层次,由下至上分别是:网络接口层、网络层、传输层和应用层。所有协议组成了 TCP/IP协议簇。层次结构以及各协议之间的对应关系如图1所示。

图1 TCP/IP参考模型层次结构与协议对应关系Fig.1 Hierarchical structure and protocol correspondence of the TCP/IP reference model

1.2 传输层协议选择

在使用Windows Sockets(简称WinSock)控件编程之前,需要选择合适的TCP/IP传输层协议,如图1所示,可以选择TCP协议或 UDP协议。两者的差异主要体现在连接性和可靠性方面。

TCP协议提供的是面向连接的、可靠的数据传输。“面向连接”是指在数据传输之前,收发双方需要建立点对点的会话连接,传输结束后需要释放连接。“可靠”是指采取相应纠错机制,使该协议具有错误校验功能,如果在传输过程中数据发生错误或无法到达对方,TCP协议会尝试重新发送数据。

UDP协议提供的是非面向连接的、不可靠的数据传输。该协议在数据传输之前不会建立点对点的会话连接,发送方只是简单地向接收方发送数据;也没有纠错机制来避免数据传输错误或确保数据成功到达目的地。

实际操作中,需要根据网络环境以及数据的传输要求选择合适的协议。如果对于数据传输的可控性、可靠性和完整性要求较高,建议选择 TCP协议。如果数据连接开销小,对传输效率和灵活性要求较高,UDP协议应该是合适的选择。WinSock控件中的Protocol属性用来设定传输层协议,缺省设置是 TCP协议。

1.3 WinSock控件简介

Internet是基于 TCP/IP模型的互联网络,而Windows是现有操作系统中最普及的一种。WinSock是Windows下得到广泛应用的、开放的、支持多种协议的网络应用程序编程接口(API)。目前,WinSock API已成为基于TCP/IP网络环境中Windows编程事实上的标准,为编程人员在 Windows平台上开发通用和规范的网络应用程序提供了极大的方便。

1.4 基于Visual Basic的WinSock应用

Visual Basic(简称VB)是目前使用最广泛的编程语言之一,其简单易学的语言、结构化的程序设计思想、可视化的编程手段以及事件驱动的编程机制,使得在 Windows环境下编写应用程序变得非常容易。利用它,用户仅仅设置几个与控件有关的属性及引用与几个控件有关的方法即可实现 WinSock系统调用所完成的功能,极大地方便了用户在基于 TCP/IP协议的网络上开发网络通信程序。

2 WinSock控件的使用

WinSock控件采用的是客户机/服务器模式(Client/Server,简称 C/S)。此模式包括客户机和服务器程序,客户机向服务器发出服务请求,服务器侦听到客户机的请求后对客户机作出应答。

2.1 主要属性

Text:设置控件中显示的文本内容;

Protocol:返回或设置使用的传输协议类型(TCP或UDP,默认为TCP);

Local Host Name:返回本机名字;

Local IP:返回本机IP地址;

Local Port:返回或设置侦听端口;

Remote Host:返回或设置远程主机名或IP地址;

Remote Host IP:返回或设置远程主机IP地址;

Remote Port:返回或设置远程主机端口;

State:返回控件当前的状态。

2.2 主要方法

Accept:通过接收 request ID 参数的方式,使服务器接收一个客户机的连接请求;

Close:关闭当前连接;

Listen:使服务器程序处于侦听状态;

Connect:向远程主机发送连接请求;

Get Data:接收远程主机发来的数据;

Send Data:向远程主机发送数据。

2.3 主要事件

Load:当前窗体载入时触发的事件;

Click:单击鼠标键时触发的事件;

Connect:当一个连接完成时触发的事件;

Connection Request:客户机向服务器发送请求时触发的事件,该事件生成一个参数 request ID,通常与 Accept方法一同使用,用来接收客户机的连接请求;

Data Arrival:有数据到达时触发的事件,通常与Get Data方法一同使用,用来获取到达的数据;

Close:远程主机关闭连接时触发的事件。

3 程序实现

3.1 服务器功能的实现

3.1.1 服务器控件设计

① Command1:退出按钮;

② Command2:设置侦听端口按钮;

③ Command3:发送按钮;

④ Textlclport:设置侦听端口文本框;

⑤ Textlclip:显示本地ip地址文本框;

⑥ Textsend:发送文本框;

⑦ Textget:接收文本框;

⑧ Winsockserver:服务器 Winsock。

3.1.2 服务器程序代码

3.2 客户机功能的实现

3.2.1 客户机控件的设计

① Command1:退出按钮;

② Command2:连接按钮;

③ Command3:设置服务器IP按钮;

④ Command4:设置服务器侦听端口按钮;

⑤ Command5:发送数据按钮;

⑥ Textrmtip:远程服务器IP文本框;

⑦ Textrmtport:远程服务器侦听端口文本框;

⑧ Textsend:发送文本框;

⑨ Textget:接收文本框;

⑩ Winsockclient:客户机 Winsock。

3.2.2 客户机程序代码

4 总 结

以上程序实例利用WinSock控件,采用客户机/服务器模式,实现了 2台主机之间的数据通信。该程序可以运行于企事业单位内部局域网,也可以在Internet环境下使用,为企事业单位员工的信息沟通搭建一个可靠、稳定的服务平台。

[1] 卞志强. Visual Basic网络程序设计[M]. 北京:人民邮电出版社,2003.

[2] 苗长云. 现代通信原理及应用[M]. 2版. 北京:电子工业出版社,2009.

[3] 邵志方. 基于WinSock控件的网络程序设计[J]. 无线互联科技,2013(4) :116.

[4] 俞时权,吕智慧. 在 TCP/IP协议支撑之上的Windows Socket应用开发[J]. 计算机应用与软件,2000(8):1-8.

Programme Implementation of Windows Sockets in Network Communication

WAN Peng
(Tianjin Archives of Science and Technology,Tianjin 300011,China)

The Windows Sockets specification defines an API for Microsoft Windows based on the TCP/IP reference model. It is widely applied due to its open and multi-protocol supporting mechanism. The paper discussed the communication mechanism of Windows Sockets and the process of network communication implementation through Visual Basic programming.

TCP/IP reference model;transport layer;Windows Sockets;Visual Basic;server;client

TP311.1

A

1006-8945(2014)11-0013-03

2014-10-10

猜你喜欢
参考模型文本框客户机
巧用文本框实现PPT多图片排版
PPT文本框的另类应用
隔山亦能打牛,本本巧变远控利器
适应性学习支持系统参考模型研究现状及发展趋势
图片动画玩异样
基于环境的军事信息系统需求参考模型
适应性学习系统的参考模型对比研究
语义网络P2P参考模型的查询过程构建
文本框酷变3D效果
升腾瘦客户机借神码翱翔“云端”