- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB环境下的winsock编程.doc
VB环境下的winsock编程
摘要:
Socket原意为“插座”,用于计算机通信则代表一种点到点信息传输。早期用于Unix系统上的通信编程规范,通信双方由代表两点的“服务器”和“客户”组成,基于IP协议进行按照TCP或UDP规范进行信息交换。建立双方通信的过程即称建立一个“套接字(Socket)”,建立后利用得到的“套接字”进行各种信息的交流。客户机/服务器模式客户机一方,TCP/IP应用程序功能如下:1) 打开通信信道(申请一套接字),并连接到服务器在主机的保留端口,该端口对应服务器的TCP/IP进程。2) 向服务器发出请求报文,等待接收应答。3) 从服务器方收到最终应答结果,或在不再请求时关闭信道并终止客户机进程。
服务器一方,TCP/IP应用程序动作如下:1) 打开通信信道(申请一套接字),通知本地主机在某一保留端口接收客户机请求。2) 等待客户请求到达指定端口。3) 接收到请求,启动一新进程处理用户请求,同时释放旧进程以响应新的客户请求,一旦服务完成,关闭新进程与客户的通信链路。4) 继续等待客户机请求。5) 如果不想响应客户机请求,关闭服务器进程。 TCP/IP应用中的服务器程序必须先于客户机进程启动,直到对客户机的响应结束或强迫终止。
在运行的时候它是一个不可见的控件,它提供了一个简单的途径访问TCP及UDP网络服务而无需了解底层细节棗你只需设置属性、在恰当的时候调用它提供的方法即可协议的选择WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。这两种协议都能用来创建客户端和服务端应用程序。当我们使用WinSock控件时,首先要确定的是使用TCP还是UDP协议。它们之间主要的区别在于连接状态TCP协议控件是一个基于连接的协议,就像电话机一样,用户必须在通话之前建立连接;UDP是一个无连接的协议,两台计算机之间的事务处理就像传纸条一样:一台计算机向另一台计算机发送消息,但是它们之间并没有一个明确的连接路径。要创建的应用程序的类别决定了要选择的协议。当发送或接收数据时,应用程序需要从服务端或客户端获得认证的话, TCP协议就正好需要在发送或接受数据前建立明确的连接。要发送的数据量大(就像图片、声音文件之类)一旦建立了连接,TCP协议就会保持连接并保证数据的完整性。但是,这种连接会占用的更多的处理器资源,成本也会更高一些。数据是陆续传输的选择UDP协议会更合适一些。UDP协议也更适合于发送小量数据。TCP连接当用TCP控件创建应用程序的时候,必须首先明确你的程序是作为服务端还是客户端。创建服务端程序就意味着你的程序能够在指定的端口进行“监听”,而客户端则能够提出请求,服务端能够接受请求并实现连接。一旦连接建立起来,客户端和服务端就能够自由地进行通信。
服务端程序
创建一个简单服务端程序的步骤:
创建一个标准EXE工程;把默认窗体(Default form)的名字改为frmServer;把form的标题(caption)改为TCP Server;把Winsock控件拉到窗体中,并命名为tcpServer;在窗体中添加2个文本框,分别命名为txtSendData和txtOutput‘
在窗体中加入下列代码;
Private Sub Form_Load()tcpServer.LocalPort = 1001
tcpServer.Listen
frmClient.Show
End Sub
Private Sub tcpServer_ConnectionRequest (ByVal requestID As Long)
If tcpServer.State sckClosed Then tcpServer.Close
tcpServer.Accept requestID
End Sub
Private Sub txtSendData_Change()
tcpServer.SendData txtSendData.Text
End Sub
Private Sub tcpServer_DataArrival (ByVal bytesTotal As Long)
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData
End Sub
TCP客户端程序
在工程中添加一个新的窗体(form),并命名为frmClient;将窗体的标题(caption)改为TCP Client;添加一个Windsock控件到窗体中,命名为tcpCllient;添加2个文本框控件到frmClient窗体,分别命名为txtSend和txtOutput;添加
文档评论(0)