winsock的问题,很急

2024-12-31 17:31:03
推荐回答(5个)
回答1:

用Winsock建立连接必须是这样的:
电脑2打开端口
电脑1 请求连接
电脑2接受连接,发送一个数据包(任意一个字符串就行)
电脑1接受数据包,发送一个数据包(任意)
至此整个连接才算安全建立,你看看少没少其中的步骤。

或者你用UDP协议试试。而且做木马的话UDP比TCP要好

还有,你的端口设置的太低,可以改的高一些。10000到60000之间随便找一个这样引起冲突的概率就小了。

CSDN上有人说这是Winsock的一个BUG,你去打补丁试试

回答2:

Private Sub Command1_Click()
If Winsock1.State = sckConnected Then
Winsock1.SendData "您好,已经收到!"
End If
End Sub

Private Sub Form_Load()
Winsock1.LocalPort = 2013 '端口号小于1000有可能与系统的端口碰上
me.command1.enabled=false
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Winsock1.GetData strData
Select Case strData
Case "您好,我已经上线"
Me.Caption = "肉鸡已经上线"
Command1.Enabled = True
Case "您好,我已经下线"
Me.Caption = "肉鸡已经下线了"
Command1.Enabled = False
End Select
End Sub

Private Sub Winsock1_Close()
Winsock1.Close
“这里需要延时处理不然会出错,可以用Timer控件”
Winsock1.Listen
End Sub

回答3:

'你应该是在没有连接的情况下SendData
'把Command1_Click() 换成以下代码试试
Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then
Winsock1.SendData "您好,已经收到!"
else
msgbox "未连接"
end if
End Sub
'添加连接成功的提示
Private Sub Winsock1_Connect()
Me.Caption = "连接成功"
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)
MsgBox "Winsock Error number " & Number & vbCrLf & Description
End Sub

回答4:

你设置得端口是518,你先监听下端口 看看是不是排除端口问题!
而且你要看看你得控件全不全!同时木马都有客户端和木马。。全了吗?

我感觉代码没什么问题,但写得简单!
我也是学VB没多久。。这是我的拙见,。、
有问题再讨论。。
我的博客1thjob.blog.163.com

回答5:

你肯定选了TCP协议,WINSOCK控件属性,修改为UDP,如果代码里没确定端口那在属性页里也要设置