文档介绍:第13章网络通信编程技术
杨章伟
e-mail:yang505412@
课程内容安排
网络协议
Winsock控件
Winsock控件的应用
小结
习题
网络协议
在用Visual Basic ,读者有必要先对网络编程所涉及的网络协议有一定的了解。
TCP/IP协议其实是IP协议和TCP协议两个网络基础协议的组合。这两个协议是网络进行通信的基础协议。
UDP(User Datagram Protocol)协议也称为用户数据报协议。该协议是一种无连接的传输层协议,提供面向事务的简单不可靠信息传输服务。与TCP协议相比,UDP协议并不提供对IP协议的可靠机制、流控制及错误恢复机制等功能。
Winsock控件
在Visual Basic ,,需要使用Winsock控件。利用Winsock控件可以与远程计算机建立连接,并通过TCP协议和UDP协议进行数据传输。Winsock控件对于用户来说是不可见的,它为用户提供了方便快捷的网络访问途径。当用户编写客户端或服务器应用程序时,不必了解底层的TCP协议和UDP协议或Winsock API函数,即可完成相应程序的设计。
在工程中选择“工程”→“部件”命令,打开“部件”对话框,选择“Microsoft Winsock Control (SP5)”项目。单击“确定”按钮将Winsock控件加载到工具箱中
常用属性
通过对Winsock控件属性的设置可以完成诸如获取本地计算机名称、设置本地计算机端口及设置远程计算机名称和地址等功能。
LocalHostName属性用于返回本地计算机的名称。
LocalIP属性用于返回本地计算机的IP地址。
LocalPort属性用于返回或者设置所用到的本地计算机端口。
Protocol属性用于返回或者设置Winsock控件所使用的协议,如TCP协议或者UDP协议。
RemoteHost属性用于返回或者设置远程计算机名称和地址。
RemoteHostIP属性用于返回远程计算机的IP地址。
RemotePort属性用于返回或设置要连接的远程计算机的端口号。
State属性用于返回Winsock控件状态。
常用方法
ept方法、Bind方法、Close方法、Connect方法、GetData方法、Listen方法、PeekData方法及SendData方法。用户通过使用这些方法可以完成诸如接受连接、关闭连接及发送数据和接收数据等操作。
Accept方法仅适用于TCP服务器应用程序。
Bind方法用于指定TCP连接的LocalPort属性和LocalIP属性。
Connect方法用于连接远程计算机。
GetData方法用于获取当前的数据块并将其存储在变体类型的变量中。
Listen方法用于创建套接字并将其设置为侦听模式。
SendData方法用于将数据发送给远程的计算机。
主要事件
Winsock控件的主要事件包括Close事件、Connect事件、ConnectionRequest事件及DataArrival事件。
Close事件,当远程计算机关闭连接时触发该事件。
Connect事件,当一个Connect操作完成时该事件发生。
ConnectionRequest事件,当远程计算机请求连接时触发。
DataArrival事件,当新数据到达时触发该事件。
Winsock控件的应用
创建网络通信程序服务器端
(1)创建客户端应用程序。在客户端设置服务器端计算机的IP地址(RemoteIP属性)或名称(RemoteHost属性)和服务器端的“监听”端口号(RemotePort属性)。然后调用Connect方法进行连接。
(2)创建服务器端应用程序。在服务器端设置一个监听端口(LocalPort属性)并调用Listen方法。当客户端需要连接时,会触发ConnectionRequest事件,ept方法来接受连接请求。
(3)建立连接后,服务器端和客户端都可以进行数据的收发。发送数据可以用SendData方法;当数据到达时,会触发DataArrival事件,这时可以在DataArrival事件内用GetData方法或PeekData方法来获取数据。
创建网络通信程序客户端
创建客户端应用程序。在客户端设置服务器端计算机的IP地址和服务器端的“监听”端口号。然后调用Connect方法进行连接。
小结
本章主要介绍网络编程技术的概念、Winsock控件及Winsock控件的使用方法。读者在了解网络编程技术概念的基础上,应该掌握Winsock控件常用的属性、方法、事件,并通过实际的编程来灵活地使用Winsock控件。