vb第一次用Winsock控件出现问题,请大来帮忙看一下,实在找不出那个错误在哪啊? 实时错误40020
下面是在主机这边的窗体代码PrivateSubForm_Load()Winsock1.RemoteHost="127.0.0.1"'设置远程主机Winsock1.Remo...
下面是在主机这边的窗体代码
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1" '设置远程主机
Winsock1.RemotePort = 2014 '设置远程主机的端口,和远程主机的localport一样的值
Winsock1.Connect 'winsock的连接
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim zifu As String
Winsock1.GetData zifu '获得消息
a = MsgBox(zifu) '把消息放在弹出窗口中
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Winsock1.Close '如何连接出错然后关闭连接
Winsock1.RemoteHost = "127.0.0.1" '重新设置远程主机
Winsock1.RemotePort = 2014 '重新设置远程主机的端口
Winsock1.Connect '重新连接
End Sub
下边是对方主机上的窗体代码
Private Sub Command1_Click()
With Me
winsock1.LocalPort = 2014 '设置本地端口为2014
winsock1.Listen '开始监听
Text2.Text = "已监听"
End With
End Sub
Private Sub Command2_Click()
On Error Resume Next '如何出错就马上执行下句
winsock1.SendData Text1.Text '发送text1的 文本
End Sub
Private Sub Timer1_Timer()
Label2.Caption = winsock1.State '监视连接状态
End Sub
Private Sub winsock1_Close()
winsock1.Close '如何对方下线。然后
MsgBox "发现对方下线" ' '跳出提示
End Sub
Private Sub winsock1_ConnectionRequest(ByVal requestID As Long)
If winsock1.State <> sckcolse Then
winsock1.Close
Else: winsock1.Accept requestID '接受连接
MsgBox ("发现上线")
End If
End Sub
程序不长。就是连接起来,然后发下消息,我以为很简单的,谁知道竟然会。听说MSDN很好用,我曾经下载一下过,但是都是英文的。我的英文差。用不了英文版的。不知道谁有中文版的。可以发个给我吗。可以发我QQ邮箱里吧。511213991@QQ.COM 十分感谢
除了错误40020。它还无法连接 展开
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1" '设置远程主机
Winsock1.RemotePort = 2014 '设置远程主机的端口,和远程主机的localport一样的值
Winsock1.Connect 'winsock的连接
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim zifu As String
Winsock1.GetData zifu '获得消息
a = MsgBox(zifu) '把消息放在弹出窗口中
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Winsock1.Close '如何连接出错然后关闭连接
Winsock1.RemoteHost = "127.0.0.1" '重新设置远程主机
Winsock1.RemotePort = 2014 '重新设置远程主机的端口
Winsock1.Connect '重新连接
End Sub
下边是对方主机上的窗体代码
Private Sub Command1_Click()
With Me
winsock1.LocalPort = 2014 '设置本地端口为2014
winsock1.Listen '开始监听
Text2.Text = "已监听"
End With
End Sub
Private Sub Command2_Click()
On Error Resume Next '如何出错就马上执行下句
winsock1.SendData Text1.Text '发送text1的 文本
End Sub
Private Sub Timer1_Timer()
Label2.Caption = winsock1.State '监视连接状态
End Sub
Private Sub winsock1_Close()
winsock1.Close '如何对方下线。然后
MsgBox "发现对方下线" ' '跳出提示
End Sub
Private Sub winsock1_ConnectionRequest(ByVal requestID As Long)
If winsock1.State <> sckcolse Then
winsock1.Close
Else: winsock1.Accept requestID '接受连接
MsgBox ("发现上线")
End If
End Sub
程序不长。就是连接起来,然后发下消息,我以为很简单的,谁知道竟然会。听说MSDN很好用,我曾经下载一下过,但是都是英文的。我的英文差。用不了英文版的。不知道谁有中文版的。可以发个给我吗。可以发我QQ邮箱里吧。511213991@QQ.COM 十分感谢
除了错误40020。它还无法连接 展开
1个回答
展开全部
这里:
Private Sub winsock1_ConnectionRequest(ByVal requestID As Long)
If winsock1.State <> sckcolse Then
winsock1.Close
Else: winsock1.Accept requestID '接受连接
MsgBox ("发现上线")
End If
End Sub
有错。应该是这样的:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID '接受连接
MsgBox ("发现上线")
End Sub
看到了吗?原来的意思是如果对方 Winsock1 收到请求的时候如果开着就关掉,如果关着就接受请求(-_-!)。而且注意,对方的 Winsock1 必须先打开,否则本地的 Winsock1 就会超时,然后可能又说“端口被占用”啊那些废话。
还有啊,老兄,您的代码书写太……了,格式啊大小写啊拼写啊,能好看点么?如果没有 VB,我自己读的都损害脑细胞啊……而且一些语句降低效率(如可以不用 With 的用了 With),建议看看书。
Private Sub winsock1_ConnectionRequest(ByVal requestID As Long)
If winsock1.State <> sckcolse Then
winsock1.Close
Else: winsock1.Accept requestID '接受连接
MsgBox ("发现上线")
End If
End Sub
有错。应该是这样的:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID '接受连接
MsgBox ("发现上线")
End Sub
看到了吗?原来的意思是如果对方 Winsock1 收到请求的时候如果开着就关掉,如果关着就接受请求(-_-!)。而且注意,对方的 Winsock1 必须先打开,否则本地的 Winsock1 就会超时,然后可能又说“端口被占用”啊那些废话。
还有啊,老兄,您的代码书写太……了,格式啊大小写啊拼写啊,能好看点么?如果没有 VB,我自己读的都损害脑细胞啊……而且一些语句降低效率(如可以不用 With 的用了 With),建议看看书。
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询