昨天在壹佰参加了小教专业同学的期末教学活动,令我感触颇多。
首先我们是以助教的身份参加的,在一开始我和分配好的小组成员坐到了一起。我们组一共是9个人,经过聊天我发现她们竟然都是转专业的学生,问她们为什么要转专业,她们的回答五花八门,的确是每个人跟每个人的想法都不一样啊。接着就是给她们解决问题,主要是针对她们的期末作业VB即时通讯小程序来回答的。在这个过程中我发现她们的小组长的程序是做的最好的,其他人或多或少都会有一点问题,看来她们选的组长真的是很有水准的。
然后就是在组内选出一个人上台演示她的作品,这就需要这个人有良好的表达能力、沟通能力,还要有信心、有勇气。在她们给台下观众讲解的时候我发现她们真的是巾帼不让须眉,尤其是第二组上台的同学,讲的非常的棒。不仅程序做没有问题,而且讲解的非常好,她还加入了了很多自己的创新,比如抖一抖,聊天框颜色的改变等等。
另外再说一下这个VB聊天小程序,它是利用了wonsock控件来实现一对一通话。其实在一开始的时候我们做的是在一台电脑上做两个窗体完成虚拟的一对一聊天,但是老师要求我们要在两台电脑上实现这一功能,于是我们几个小伙伴就查资料,集思广益终于实现了这一功能。在这个过程中我们一定不要着急,只要我们不断调试,不断尝试,就一定会成功的。
Wonsock控件
常用属性:
- LocalPort 本地主机端口
- RemoteHost 远程主机名称
- RemotePort远程主机端口
常用方法:
- Listen 监听TCP数据
- Connect 连接
- Accept 接受连接请求
- Close 关闭连接请求
- SendData/GetData 传输/获取数据
常用事件:
- ConnectionRequest 连接请求
- DataArrival 数据到达
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub cmdSendMsg_Click()
If txtRemoteIp.Text = "" Then '判断是接收方
If txtMessage.Text = "" Then
MsgBox "不能为空,请输入", , "提示"
Else
txtMsgHistory.Text = txtMsgHistory.Text & vbCrLf & Now & vbCrLf & "李雷说:" & txtMessage.Text
Winsock2.SendData (Now & vbCrLf & "我说:" & txtMessage.Text)
txtMessage.Text = ""
End If
Else '判断是发送方
If txtMessage.Text = "" Then
MsgBox "不能为空,请输入", , "提示"
Else
txtMsgHistory.Text = txtMsgHistory.Text & vbCrLf & Now & vbCrLf & "我说:" & txtMessage.Text
Winsock1.SendData (Now & vbCrLf & "李雷说:" & txtMessage.Text)
txtMessage.Text = ""
End If
End If
End Sub
Private Sub Form_Load()
Winsock2.LocalPort = 1000 '设置端口 与Winsock2保持一致
Winsock2.Listen
End Sub
Private Sub cmdFrm2Show_Click()
Winsock1.RemoteHost = txtRemoteIp.Text '设置Winsock1的RemoteHost属性
Winsock1.RemotePort = 1000 '设置端口 与Winsock2保持一致
Winsock1.Connect 'Winsock1和WinsockHanmm开始通信连接
End Sub
Private Sub winsock2_ConnectionRequest(ByVal requestID As Long)
Winsock2.Close '关闭当前winsock2控件的监听(liSten)状态
Winsock2.Accept requestID '接受当前的通信请求,建立消息通道
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim txtMessage As String '接收到消息,放在历史记录框
Winsock1.GetData txtMessage, vbString
txtMsgHistory.Text = txtMsgHistory.Text & vbCrLf & txtMessage
End Sub
Private Sub winsock2_DataArrival(ByVal bytesTotal As Long)
Dim txtMessage As String '接收到消息,放在历史记录框
Winsock2.GetData txtMessage, vbString
txtMsgHistory.Text = txtMsgHistory.Text & vbCrLf & txtMessage
End Sub