网络编程用vb实现简单的聊天实验报告

网络编程用vb实现简单的聊天实验报告

ID:1308957

大小:174.00 KB

页数:10页

时间:2017-11-10

网络编程用vb实现简单的聊天实验报告_第1页
网络编程用vb实现简单的聊天实验报告_第2页
网络编程用vb实现简单的聊天实验报告_第3页
网络编程用vb实现简单的聊天实验报告_第4页
网络编程用vb实现简单的聊天实验报告_第5页
资源描述:

《网络编程用vb实现简单的聊天实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验3:计算机网络实验——网络编程1一、实验目的:(1)熟悉和掌握网络编程的基本方法和步骤;(2)进一步理解client/server交互模式;(3)加深学生对于网络协议概念的理解以及协议的设计和实现方法。二、实验任务:使用任意网络编程语言(Java、C、VB、Delphi等)编写网络选课模拟程序,它由client和server两部分组成,client和server之间的通信基于TCP协议。实现数据的收发。三、网络编程:大多数网络应用程序都遵从client/server交互模型。该模型中,服务器应用是一种专门用来提供某一种服务

2、的程序,它被动地等待通信,而客户应用主动地启动通信,请求服务器的服务。服务器程序既可以接收信息也能发送信息,还可以成为客户。TCP/UDP赋予每个服务一个唯一的协议端口号。服务器程序通过协议端口号来指定它所提供的服务,然后被动地等待通信。客户在发送连接请求时,必须说明服务器程序运行主机的IP地址和协议端口号来指定它所希望的服务。服务器端计算机通过此端口号将收到的请求转向正确的服务器程序。大多数网络编程语言都提供或者使用控件封装了套接字应用程序接口(SocketAPI),应用程序通过套接字接口调用来实现和传输层交互。用户目前可以

3、使用两种套接口,即流套接字TCP和数据报套接字UDP。流式套接字定义了一种可靠的面向连接的服务,提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接字定义了一种无连接的服务,支持双向的数据流,但并不保证是可靠,有序,无重复的。也就是说,一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。数据报套接字的一个重要特点是它保留了记录边界。套节字API主要包括表1所示的接口。使用面向连接的套接字编程,通过图2来表示其时序。套接字工作过程如下:服务器首先启动,通过调用socket()建立一个套接字

4、,然后调用bind()将该套接字和本地网络地址联系在一起,再调用listen()使套接字做好侦听的准备,并规定它的请求队列的长度,之后就调用accept()来接收连接。客户在建立套接字后就可调用connect()和服务器建立连接,连接一旦建立,客户机和服务器之间就可以通过调用read()和write()来发送和接收数据。最后,待数据传送结束后,双方调用close()关闭套接字。表1套节字API主要接口接口解释SOCKETBINDLISTENACCEPTCONNETSENDRECVCLOSE创建一个新的套接字给服务器绑定一个传输

5、层地址将服务器设为被动模式接收客户的一个请求客户向服务器发起连接向一个连接的套接字发送数据从一个连接的套接字接收数据终止一个连接四.程序设计及编程思路1.打开VB.单击文件——>新建工程。在新建工程的窗口中选择标准EXE.单击确定。2.在Form1中添加如下控件。以此作为TCP服务器的界面。3.双击每个控件来添加其功能代码。PrivatetempAsLong'定义TCP服务器下标数组Privatelistcount(10000)AsByte'定义下拉框数组PrivatexbAsLong'定义下标PrivateSubComman

6、d1_Click()'连接Winsock1(temp).LocalPort=Val(Text2.Text)Winsock1(temp).ListenCommand1.Enabled=FalseCommand2.Enabled=TrueEndSubPrivateSubCommand2_Click()'退出TCP连接Winsock1(temp).CloseCommand1.Enabled=TrueCommand2.Enabled=FalseEndSubPrivateSubCommand3_Click()'发送数据Dimint1As

7、IntegerDoWhileList1.SelCount>0DoUntilList1.Selected(int1)m=1int1=int1+1LoopWinsock1(listcount(int1)).SendDataText3.TextExitDo'一定要跳出,否则进入死循环LoopEndSubPrivateSubForm_Load()xb=0EndSubPrivateSubWinsock1_ConnectionRequest(variAsInteger,ByValrequestIDAsLong)DimiAsLong'tem

8、p=vari'将变量赋值'遍历数组查找空闲的套接字Fori=0ToWinsock1.UBoundIfWinsock1(i).State=sckClosedThen'找到空闲的套接字Winsock1(i).AcceptrequestID'接收连接List1.AddItemWin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。