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。它还无法连接
展开
 我来答
c20090218
2010-10-17 · TA获得超过255个赞
知道答主
回答量:161
采纳率:0%
帮助的人:195万
展开全部
这里:

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 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式