欢迎来到天天文库
浏览记录
ID:41033119
大小:79.00 KB
页数:7页
时间:2019-08-14
《VB环境下的winsock编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VB环境下的winsock编程摘要:Socket原意为“插座”,用于计算机通信则代表一种点到点信息传输。早期用于Unix系统上的通信编程规范,通信双方由代表两点的“服务器”和“客户”组成,基于IP协议进行按照TCP或UDP规范进行信息交换。建立双方通信的过程即称建立一个“套接字(Socket)”,建立后利用得到的“套接字”进行各种信息的交流。本文介绍了利用VBWinsock控件编程的基本思路和方法。关键字:VisualBasic、Winsocket、客户端、服务器一.Winsocket的网络通讯
2、机制在利用Winsocket进行通讯的网络程序中一般采用客户机/服务器模式,这种模式的工作方式如下客户机一方,TCP/IP应用程序功能如下:1)打开通信信道(申请一套接字),并连接到服务器在主机的保留端口,该端口对应服务器的TCP/IP进程。2)向服务器发出请求报文,等待接收应答。3)从服务器方收到最终应答结果,或在不再请求时关闭信道并终止客户机进程。服务器一方,TCP/IP应用程序动作如下:1)打开通信信道(申请一套接字),通知本地主机在某一保留端口接收客户机请求。2)等待客户请求到达指定端口
3、。3)接收到请求,启动一新进程处理用户请求,同时释放旧进程以响应新的客户请求,一旦服务完成,关闭新进程与客户的通信链路。4)继续等待客户机请求。5)如果不想响应客户机请求,关闭服务器进程。 注意:TCP/IP应用中的服务器程序必须先于客户机进程启动,直到对客户机的响应结束或强迫终止。二.VB中的Winsocket控件在部件中添加Winsocket控件MicrosoftWinsockControl6.0、在运行的时候它是一个不可见的控件,它提供了一个简单的途径访问TCP及UDP网络服务而无需了解
4、底层细节棗你只需设置属性、在恰当的时候调用它提供的方法即可。三.Winsock控件协议的选择:WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。这两种协议都能用来创建客户端和服务端应用程序。当我们使用WinSock控件时,首先要确定的是使用TCP还是UDP协议。它们之间主要的区别在于连接状态。TCP协议控件是一个基于连接的协议,就像电话机一样,用户必须在通话之前建立连接;UDP是一个无连接的协议,两台计算机之间的事务处理就像传纸条一
5、样:一台计算机向另一台计算机发送消息,但是它们之间并没有一个明确的连接路径。要创建的应用程序的类别决定了要选择的协议。当发送或接收数据时,如果应用程序需要从服务端或客户端获得认证的话,TCP协议就正好需要在发送或接受数据前建立明确的连接。如果要发送的数据量大(就像图片、声音文件之类)一旦建立了连接,TCP协议就会保持连接并保证数据的完整性。但是,这种连接会占用的更多的处理器资源,成本也会更高一些。如果数据是陆续传输的选择UDP协议会更合适一些。UDP协议也更适合于发送小量数据。四.通讯的实现1.
6、TCP连接当用TCP控件创建应用程序的时候,必须首先明确你的程序是作为服务端还是客户端。创建服务端程序就意味着你的程序能够在指定的端口进行“监听”,而客户端则能够提出请求,服务端能够接受请求并实现连接。一旦连接建立起来,客户端和服务端就能够自由地进行通信。TCP服务端程序创建一个简单服务端程序的步骤:创建一个标准EXE工程;把默认窗体(Defaultform)的名字改为frmServer;把form的标题(caption)改为TCPServer;把Winsock控件拉到窗体中,并命名为tcpSe
7、rver;在窗体中添加2个文本框,分别命名为txtSendData和txtOutput‘在窗体中加入下列代码; PrivateSubForm_Load()tcpServer.LocalPort=1001tcpServer.ListenfrmClient.ShowEndSubPrivateSubtcpServer_ConnectionRequest(ByValrequestIDAsLong)IftcpServer.State<>sckClosedThentcpServer.ClosetcpServ
8、er.AcceptrequestIDEndSubPrivateSubtxtSendData_Change()tcpServer.SendDatatxtSendData.TextEndSubPrivateSubtcpServer_DataArrival(ByValbytesTotalAsLong)DimstrDataAsStringtcpServer.GetDatastrDatatxtOutput.Text=strDataEndSubTCP客户端程序在工程中添加一个新的窗体(form),并命名为f
此文档下载收益归作者所有