admin 管理员组文章数量: 887021
2023年12月22日发(作者:常量定义的标识符是下列选项中的哪一项)
实验一:Socket通信
一、实验目的和要求
1.
学习网络中进程之间通信的原理和实现方法;
2.掌握在VB或VC++等集成开发环境中编写网络程序的方法;
3.编写一个简单的聊天程序:1)最低要求实现两人一组的两台计算机之间的收发文本及其显示;2)再高要求是多人一组的多台机器之间的文本、语音等聊天和数据的记录。只交电子报告,报告中包括:a)程序结构说明;b)关键代码和算法说明; c)程序的运行结果截图及其说明(截图文件格式为.jpg,每一幅图的大小不超过30K)。
4.在实验结束之前完成,如有抄袭一律以零分记。
5. 写明通信双方的IP地址和端口。
二、实验设备及分组
1.Windows2000以上操作系统;
2.VB和Visual C++ 6.0语言环境;
3.每人一台PC机。
三、实验内容和步骤
1.程序及其说明
设计思想:
此次实验运用VB语言来实现计算机之间通信,用TCP协议在应用层上面进行程序的编写,实现数据在对等层之间进行传送,主要用到Winsock这个控件。Winsock控件的作用简单说就是可以用于两台或多台机器间通信,这次实验主要用到了winsock的Locallip(返回本机IP),remotehome(返回通信对方的IP),remoteport(设置通信端口号),connect(连接),senddata(发送数据),getdata(接受数据),state(返回当前winsock的当前状态)等几个功能。
整个聊天界面包括两个菜单(文件、关于)、二个text文本框(一个聊天记录文本框,一个消息发送文本框)、四个fame框、一个本机IP和端口号、三个服务器IP和端口号、两个commend按钮、一个发送选择选项以及一个winsock空间组成。主要实现两台或多台计算机之间的简单聊天和文件传输。运用每一台从机一个winsock控件,实现主机连接多个从机,主机能广播发给各个从机信息,也能看到从机发的信息,实现一对多的简单聊天。在本机IP地址内可以看到本机在所连接的局域网中的IP地址,端口号可以随意设置,以方便别的客户机连接此计算机。三个服务器框最多可以同时连接三个服务器,在相应的IP地址和端口号文本框中输入内容,连接。连接完成之后就可以广播消息进行一对多的聊天。这个程序目前只能做到简单聊天,对于文件传输还不能实现,这个我会在以后的时间中不段完善的。还有一个问题是要多加一台计算机实现通信就要多加一个winsock控件,这样如果计算机多了之后就实现就比较麻烦,所以这方面也还有待改进。
2.各程序段说明:
Private Sub exit_Click() '菜单栏→文件→退出
End
End Sub
Private Sub about_Click()
MsgBox ("通信1082 郑启航 1081302234!", , "关于") '菜单栏→关于
End Sub
Private Sub Command2_Click()
'ip = InputBox("请输入IP地址")
Host = Trim() '设置要连接的IP
Port = '设置客户端端口号
t
Host = Trim() '服务器2
Port =
t
Host = Trim() '服务器3
Port =
t
End Sub
Private Sub Command1_Click()
ta '发送text2中的内容,实现数据的发送
= & "主机" & ":" & & vbCrLf '在text1中显示聊天记录
ta
= & "主机" & ":" & & vbCrLf
ta
= & "主机" & ":" & & vbCrLf
= ""
End Sub
Private Sub Form_Load()
= P '返回本机的Ip地址
ort =1002
‘
End Sub
Private Sub Winsock1_Connect() '连接成功
d = False
MsgBox = ("连接成功")
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If <> 0 Then '返
回Winsock的状态,若非关闭状态,则关闭
requestID '用Accept方法来接收客户端的连接请求
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sss As String
a sss '接收数据
= & & ":" & sss & vbCrLf
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim ss As String
a ss
= & & ":" & ss & vbCrLf
End Sub
Private Sub Winsock3_DataArrival(ByVal bytesTotal As Long)
Dim s As String
a s
= & & ":" & s & vbCrLf
End Sub
3.程序运行结果
图1-1 运行结果
图1-2 连接成功 发送数据
图1-3 接收数据
图1-4 关于作者
图1-5 通信成功
图1-6 对方界面
四、实验总结
本次试验是做聊天程序,最开始的时候还有些担心,担心会比较困难,但在开始实验的时候老师把实验的代码和控件都给了我们,只要我们加以修改达到预期的效果即可,这在某种程度上大大减小了本次实验的难度。其实老师给了我们C++和VB的程序代码,但相对于C++,VB显得较为简单一些,所以我们就选择了用VB为程序的开发软件。很遗憾的是这次实验只实现了简单的一对一,一对多的简单聊天,却无法实现文件的传输功能,通过这次实验,我理解了作为计算机网络各个层之间的关系,物理层,MAC层,网络层和运用层之间的关系,作为我们普通的用户,一般都是直接在应用层实现各个功能,而对底层的工作无需知道。这个聊天程序也是在应用层上面实现的。本次实验是在小组成员的共同努力下完成的,也第一次知道了用winsock可以在应用层实现计算机之间的通信,很多关于winsock的功能都是从网上down下来的,发现实践确实是个促进我们学习的好途径。这次实验打破了一台电脑做软件的局限性,让我知道原来一些程序还是需要联网才能做得起来,测试也不是一台机器能完成得了的,这是需要我们大家的齐心合力,共同配合才能做好的事情,客观的加深了同学之间的凝聚力。
版权声明:本文标题:计算机网络实验:Socket通信 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703204145h442149.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论