网站大量收购独家精品文档,联系QQ:2885784924

网络编程用VB实现简单的聊天实验报告.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验3:计算机网络实验——网络编程1 一、实验目的: (1)熟悉和掌握网络编程的基本方法和步骤; (2)进一步理解client/server交互模式; (3)加深学生对于网络协议概念的理解以及协议的设计和实现方法。 二、实验任务: 使用任意网络编程语言(Java、C、VB、Delphi等)编写网络选课模拟程序,它由client和server两部分组成,client和server之间的通信基于TCP协议。实现数据的收发。 三、网络编程: 大多数网络应用程序都遵从client/server交互模型。该模型中,服务器应用是一种专门用来提供某一种服务的程序,它被动地等待通信,而客户应用主动地启动通信,请求服务器的服务。服务器程序既可以接收信息也能发送信息,还可以成为客户。 TCP/UDP赋予每个服务一个唯一的协议端口号。服务器程序通过协议端口号来指定它所提供的服务,然后被动地等待通信。客户在发送连接请求时,必须说明服务器程序运行主机的IP地址和协议端口号来指定它所希望的服务。服务器端计算机通过此端口号将收到的请求转向正确的服务器程序。 大多数网络编程语言都提供或者使用控件封装了套接字应用程序接口(Socket API),应用程序通过套接字接口调用来实现和传输层交互。用户目前可以使用两种套接口,即流套接字TCP和数据报套接字UDP。流式套接字定义了一种可靠的面向连接的服务,提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接字定义了一种无连接的服务,支持双向的数据流,但并不保证是可靠,有序,无重复的。也就是说,一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。数据报套接字的一个重要特点是它保留了记录边界。 套节字API主要包括表1所示的接口。 使用面向连接的套接字编程,通过图2来表示其时序。套接字工作过程如下:服务器首先启动,通过调用socket()建立一个套接字,然后调用bind()将该套接字和本地网络地址联系在一起,再调用listen()使套接字做好侦听的准备,并规定它的请求队列的长度,之后就调用accept()来接收连接。客户在建立套接字后就可调用connect()和服务器建立连接,连接一旦建立,客户机和服务器之间就可以通过调用read()和write()来发送和接收数据。最后,待数据传送结束后,双方调用close()关闭套接字。 表1 套节字API主要接口 接口 解释 SOCKET BIND LISTEN ACCEPT CONNET SEND RECV CLOSE 创建一个新的套接字 给服务器绑定一个传输层地址 将服务器设为被动模式 接收客户的一个请求 客户向服务器发起连接 向一个连接的套接字发送数据 从一个连接的套接字接收数据 终止一个连接 四.程序设计及编程思路 1.打开VB.单击文件——新建工程。在新建工程的窗口中选择标准EXE.单击确定。 2.在Form1中添加如下控件。 以此作为TCP服务器的界面。 3.双击每个控件来添加其功能代码。 Private temp As Long 定义TCP服务器下标数组 Private listcount(10000) As Byte 定义下拉框数组 Private xb As Long 定义下标 Private Sub Command1_Click() 连接 Winsock1(temp).LocalPort = Val(Text2.Text) Winsock1(temp).Listen Command1.Enabled = False Command2.Enabled = True End Sub Private Sub Command2_Click() 退出TCP连接 Winsock1(temp).Close Command1.Enabled = True Command2.Enabled = False End Sub Private Sub Command3_Click() 发送数据 Dim int1 As Integer Do While List1.SelCount 0 Do Until List1.Selected(int1) m = 1 int1 = int1 + 1 Loop Winsock1(listcount(int1)).SendData Text3.Text Exit Do 一定要跳出,否则进入死循环 Loop End Sub Private Sub Form_Load() xb = 0 End Sub Private Sub Winsock1_ConnectionRequest(va

文档评论(0)

fpiaovxingl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档