通信1091王亚芹1091302129WIN SOCKET通信编程
姓名: 王亚芹 班级: 通信1091 学号: 1091302129
同组人: 姜阳阳 班级: 通信1091 学号: 1091302126 实验时间: 2012-3-16 地点: 11#205 指导老师: 朱全银 实验名称: WinSocket通信编程
实验目的:
1( 熟悉C++/VB的基本操作。
2( 基本了解基于对话框的windows应用程序的编写过程。
3( 对于Windows Socket编程建立初步概念。
实验设备:
1( Windows2000以上操作系统;
2( VB和Visual C++ 6.0语言环境;
3( 每人一台PC机。
实验原理:
下图为面向无连接时winsock通信的
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图:
服务器 客户端
否 否
成功, 成功,
是 是
聊天 相互 聊天
对话框 通信 对话框
否 否
退出, 退出,
是 是
结束 结束
图-1 面向无连接的winsock通信流程图
用户数据文报协议 (UDP) 是一个无连接协议。计算机之间并不建立连接。UDP 应用程序可以是客户机,也可以是服务器。为了传输数据,首先要设置客户计算机的 LocalPort 属
性。然后,服务器计算机只需将RemoteHost 设置为客户计算机的 Internet 地址,并将 RemotePort 属性设置为跟客户计算机的 LocalPort 属性相同的端口,并调用 SendData 方法来着手发送信息。于是,客户计算机使用 DataArrival 事件内的 GetData 方法来获取已发送的信息。
实验步骤:
1. 客户端模块
(1) 建立一个登陆界面:
图-2 A端登陆界面 图-3 A端登录时密码输错
图-4 A端登陆成功
主要代码为:
If Text1.Text = "1" Then
If Text2.Text = "1" Then
MsgBox "恭喜你,登陆成功~"
Form2.Show
Form1.Hide
Else
MsgBox "对不起,密码错误~"
End If
End If
(2) 登陆成功以后,弹出聊天界面:
图-5 A端聊天界面
这部分窗体上要放一个winsock控件,然后在属性页上把协议改成UDPProtocol,本地端口设为1000,对端设为1000。remotehost属性设置为另一台计算机的IP地址172.20.3.72。调用bing方法,指定使用的当地端口号1001。
主要代码:
Private Sub Form_Load()
Winsock1.Bind (1000)
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Winsock1.GetData str
Text1.Text = Text1.Text & Chr(13) + Chr(10) & "B" & " " & Date & " " & Time &
Chr(13) + Chr(10) & str
End Sub
图-6 A端实时聊天界面
这部分主要就是发送:
主要代码:
Private Sub Command3_Click()
Winsock1.RemoteHost = Winsock1.RemoteHost
Winsock1.SendData (Text2.Text)
Text1.Text = Text1.Text + Chr(13) + Chr(10) + "A" & " " & Date & " " & Time &
Chr(13) + Chr(10) & Text2.Text
Text2.Text = Empty
End Sub
图-7 关闭时界面
点击关闭按钮,弹出一个对话框,确定是否退出,如果是“否”,可以继续聊天,如
果是“是”,程序就结束了。
主要代码:
Private Sub Command2_Click()
Dim quit As Integer
quit = MsgBox("您确定要退出吗,", 4 + 32 + 256)
If quit = 6 Then
Winsock1.Close
End
End If
End Sub
(3) 服务器端模块:
因为两台计算机的地位是平等的,这种程序就是点对点通信,所以客户端和服
务器端基本一样,一样有个登陆界面,然后弹出对话框,进行对话,代码和服
务器端一样。
不同的地方是,这部分窗体上要的winsock控件,本地端口设为1000,对端设为1001。remotehost属性设置为另一台计算机的IP地址172.20.3.73。调用bing方法,指定使用的当地端口号1000。
图-8 B端登陆界面
图-9 B端聊天窗口
实验体会:
这次实验,我把网络编程所学知识应用到实验中,通过实践使我熟悉了对Windows Socket的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方法,使我对课本知识有了更深刻的理解和认识。这个实验采用对等模式,基于VB 的UDP的点到点通信,因此双方都不需要连接,但是通信双方必须知道对方的IP地址还有端口号。关键把Socket的通讯过程搞清楚,这个实验就没有难度,但是如果再做的麻烦一点可能就会有些难度了。比如文件传输,我做了下有很多问题,就把这部分删掉了。这个实验做的有点单一,很多方面都没有完善,但是,我会继续努力的。