ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:94.04KB ,
资源ID:22760333      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22760333.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TCP协议开发试验报告Word文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

TCP协议开发试验报告Word文档格式.docx

1、班级计本(1)学 号一、实验目的学会使用Winsock控件的TCP方式实现一个网络聊天程序,以达到学会面向连接方式的程序设计方法。二实验环境Windows xp操作系统,装有Visual basic6.0软件三、实验内容与步骤1. 在客户端创建一个新的工程将其命名为“Client” 2. 将窗体的标题改为“客户端”。3. 在窗体中添加一个 WinSock 控件,并将其命名为winsockserver。4. 在窗体中添加一个listbox控件。将其命名为list1。5. 在 frmClient 中添加一个 TextBox 控件。将其命名为 txtsend。6. 在窗体上放两个 CommandBu

2、tton 控件,并将其命名为 “Command1”和“Command2”。7. 将Command1控件的标题改为“连接”, 将Command2控件的标题改为 “发送”。8. 在窗体中添加如下的代码。(1)当用户单击“连接”按钮后,触发时间处理程序如下: Private Sub Command2_Click() Winsockclient.Connect 向服务器发出连接请求 End Sub(2)当用户单击“发送”按钮,所触发的时间处理过程如下:Private Sub Command3_Click() Winsockclient.SendData Textsend.Text 将textsed文本

3、框中的内容发送给远程计算机 Textsend.Text = End Sub(3)其他事件程序: Private Sub Form_Load() Textsend.Visible = False List1.Visible = False Command3.Visible = False Winsockclient.RemotePort = 1001 连接远程计算机上的1001端口 Winsockclient.RemoteHost = qianfang-8ecf4e 远程计算机的名字 Private Sub Text1_Change() Winsockclient.RemoteHost = Te

4、xt1.Text 在text2文本框中输入远程计算机名或IP地址 Private Sub Winsockclient_Close() Winsockclient.Close 关闭连接 End与远程计算机取得连接后,进入下面的程序 Private Sub winsockclient_Connect() Textsend.Visible = True Text1.Visible = False List1.Visible = True Command2.Visible = False Command3.Visible = True取得连接后,对收到的数据进行DataArrival处理 Privat

5、e Sub winsockclient_DataArrival(ByVal bytesTotal As Long) Dim s As String Winsockclient.GetData s 从远程计算机接收到的数据放入s中在list1中显示接收到的内容 List1.AddItem & Index & Trim(s)服务器端的程序 在窗体中添加三个WinSock控件,将其分别命名为SckListen、sckBusy和sckServer并将“sckServer”的“Index”属性设置为0(1)定义程序中的全局变量。Private MaxChan As Integer 定义MaxChan为整

6、型,使用winsock控件的最大值(2)在form_load中,进行变量初始化,并设置winsock控件数组。Private Sub Form_Load() from窗口元素装载最大允许15个客户端同时登录Dim i As Integer 定义变量i为整型MaxChan = 15 将15赋值给MaxchanFor i = 1 To MaxChan - 1 进入for循环MacChan递减Load sckServer(i) 装载第i个命名为sckServer的winsock控件Next i 下一个i控件sckListen.LocalPort = 1001 在命名为sckListen的winsoc

7、k控件上设置本地的监听端口为1001,并初始化sckListen.Listen 开始监听命令中指定了本地主机的通信端口,并使用Listen方法来监听连接请求。(3)当客户端有连接请求时,在服务器端触发ConnectionRequest事件,其时间处理程序代码如下:Private Sub sckListen_ConnectionRequest(ByVal requestID As Long) winsock控件的ConnectionRequest事件决定由哪一Winsock接受请求For i = 0 To MaxChan - 1If sckServer(i).State = 0 Then 查看w

8、insock控件状态是否为0Exit ForEnd IfNext i如果有空的winsock则使用winsock控件的accept方法接受连接If sckServer(i).State = 0 ThensckServer(i).Accept requestIDExit Sub如果所有Winsock都用完则由专门的“忙”Winsock接受请求,以免用户要求得不到响应sckBusy.ClosesckBusy.Accept requested(4)在DataArrival事件被触发后,对接受到的数据进行相应的处理。Private Sub sckServer_DataArrival(Index As

9、Integer, ByVal bytesTotal As Long)Dim s As StringDim i As IntegersckServer(Index).GetData s 用winsock的getdata方法获取当前数据块并将其存储在s中判断是否为悄悄话,点对点方式If UCase(Left(Trim(s), 2) = PT Then 返回是以pt开头,“pt”不区分大小写If IsNumeric(Mid(Trim(s), 3, 2) Then 判断返回的的第三个字符开始的两个字符为数字如果以上两个条件都满足,则进入一下进程i = Mid(Trim(s), 3, 2) 将返回的第三

10、个字符开始的两个字符赋值给i用winsock的senddata方法将数据发送给远程计算机,格式为Channel “i”+内容sckServer(i).SendData Channel Right(Trim(s), Len(Trim(s) - 4)DoEventsElse 广播方式利用winsock的State属性给所有连接在服务器上的客户发消息If sckServer(i).State = 7 Then 如果已连接则用winsock的senddata向远程计算机发送数据将接受到的数据放入命名为lstReceive的listbox控件中lstReceive.AddItem (5)其他事件程序。P

11、rivate Sub sckBusy_Close()sckBusy.Close 关闭命名为sckBusy的winsock控件连接Private Sub sckBusy_DataArrival(ByVal bytesTotal As Long)sckBusy.SendData 服务器忙,请稍后再连接!如果服务器忙,则发送“”中的内容如果连接失败则Error事件被触发Private Sub sckListen_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As Stri

12、ng, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)sckListen.Close 用close方法关闭TCP连接sckListen.LocalPort = 1000 初始化本地主机1000端口sckserver控件发生错误,使用sckServer的error事件进行处理Private Sub sckServer_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As

13、 Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)sckServer(Index).Close (6)现在,在服务器既能监听又能接收数据,而且还能把接收到的数据显示出来,特别说明的是,这时的程序代码还没完,因为当远程客户计算机关闭连接时,应用程序应正确关闭TCP连接。关闭事件处理程序如下:Private Sub sckServer_Close(Index As Integer)5. 实验结果 点对点聊天 在1号和2号线程进行聊天的时候,0号线程不能看到他们的聊天内容。群聊四、实验过程与分析实验中用到了vb编程,通过编程实现聊天功能。服务器要既能监听又能接收数据,而且还要能把接收到的数据显示出来,当远程客户计算机关闭连接时,应用程序应正确关闭TCP连接。五、实验总结要保留聊天记录应该用list box控件而不是textbox控件,在建立客户端与服务器端连接的时候要仔细,不能缺少任何一步,否则就无法建立连接了。六、教师评语实验过程合理,较好的完成了实验内容。教师签名武光利成绩批阅日期2011.11.4

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1