WinSocket编程实验报告

2019-08-30 15:44

实验六: WinSock编程实验报告

1实验目的和要求

1) 学习网络中进程之间通信的原理和实现方法;

2) 掌握在VB或VC++等集成开发环境中编写网络程序的方法;

3)编写一个简单的聊天程序:最低要求实现两人一组的两台计算机之间的收发文本及其显示;

2实验设备及分组

1) Windows2000以上操作系统; 2) VB和Visual C++ 6.0语言环境; 3) 每人一台PC机。

3实验内容和步骤

3.1设计服务器界面

打开vb程序,新建一个工程,取名为server。在窗体中添加控件。将Winsock控件放入到窗体里,名称属性改为Winsockserver。在窗体里建立两个按钮,command1的caption属性为发送,command2的caption属性为退出。建立两个richtextbox,richtextbox1的名称属性改为textget,ScrollBars属性改为3-rtfBoth,Locked属性改为True,richtextbox2的名称属性改为textsend,ScrollBars属性改为3-rtfBoth。然后建立两个label,caption属性改为接受窗口和发送窗口。如图3-1所示。

图3-1 服务器界面

3.2设计客户端界面

先建立一个工程,取名为client。在窗体中加入控件:将Winsock控件添加到窗体里,名称属性改为winsockclient。建立两个richtextbox,richtextbox1的名称属性改为textget,ScrollBars属性改为3-rtfBoth,Locked属性改为True,

richtextbox2的名称属性改为textsend,ScrollBars属性改为3-rtfBoth。在窗体里

建立三个按钮,command1的caption属性为发送,command2的caption属性为退出,command3的caption属性为连接。建立一个text。再建立三个Lable,caption属性分别为主机名,接收和发送,如图3-2所示。

图3-2 客户端界面

3.3编写程序及其说明 3.3.1服务器程序

Private Sub Command1_Click() ’发送选项 Dim a As String a = \服务器:\

Winsockserver.SendData \

textget.Text = textget.Text & a & \vbCrLf ‘可自动换行,并有时间显示

textsend.Text = \‘发送完毕后,文本框自动清空 End Sub

Private Sub Command2_Click()’退出后结束运行 End End Sub

Private Sub Form_Load()‘窗体加载时,发送文本框与接收文本框不可见 textsend.Visible = False‘发送信息文本框不可见 textget.Visible = False‘接收信息文本框可见 Winsockserver.LocalPort = 1001‘服务器端口号设置

Winsockserver.Listen‘服务器侦听 End Sub

Private Sub Winsockserver_Close() Winsockserver.Close‘关闭服务器 End Sub

Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long) ‘连接后,WinSock控件工作 textsend.Visible = True

textsend.Text = \‘清空文本框信息 textget.Visible = True textget.Text = \

If Winsockserver.State <> sckClosed Then Winsockserver.Close‘如果socket没有关闭,则关闭socket

Winsockserver.Accept requestID‘服务器接受请求,接受以后双方才能发送数据

MsgBox (\连接SERVER成功!\End Sub

Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)‘信息接收 Dim tmpstr As String Dim a As String a = \客户端:\

Winsockserver.GetData tmpstr

textget.Text = textget.Text & a & tmpstr & vbCrLf End Sub

3.3.2客户端程序

Private Sub Command1_Click() winsockclient.Connect End Sub

Private Sub Command2_Click()’ 连接,且Shape控件显示连接状态 Dim aa As String

aa = \客户端:\

winsockclient.SendData \

textget.Text = textget.Text & aa & \ vbCrLf

textsend.Text = \End Sub

Private Sub Command3_Click() End End Sub

Private Sub Form_Load() ‘程序加载,文本框不可见

Text1.Text = \这里输入要连接的服务器的IP\‘提示输入ip地址 textsend.Visible = False textget.Visible = False

winsockclient.RemotePort = 1001’客户端端口号设置为1001 winsockclient.RemoteHost = \End Sub

Private Sub Text1_Change()

winsockclient.RemoteHost = Text1.Text‘客户端验证主机名 End Sub

Private Sub winsockclient_Close()‘关闭客户端 winsockclient.Close End Sub

Private Sub winsockclient_Connect()‘客户端连接 textsend.Visible = True textsend.Text = \ textget.Visible = True textget.Text = \

Command2.Visible = True MsgBox (\连接SERVER成功!\End Sub

Private Sub winsockclient_ConnectionRequest(ByVal requestID As Long) textsend.Visible = True textsend.Text = \ textget.Visible = True textget.Text = \

If Winsockserver.State <> sckClosed Then Winsockserver.Close‘如果socket没有关闭,则关闭socket

Winsockserver.Accept requestID End Sub

Private Sub winsockclient_DataArrival(ByVal bytesTotal As Long)‘信息接收 Dim tmpstr As String Dim a As String a = \服务器:\

winsockclient.GetData tmpstr

textget.Text = textget.Text & a & tmpstr & vbCrLf End Sub

3.4 运行程序 3.4.1 客户端运行结果

图3-3 客户端连接

运行后,填写要连接的主机的IP地址,点击连接,成功后,会提示连接服务器成功。点击确定,双方就可以进行通信。

图3-4 客户端信息接收

双方之间正常通信,接收端能显示信息内容和时间。


WinSocket编程实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初中生物课改总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: