VB Wincosk 编程 客户端总是连不上

来源:百度知道 编辑:UC知道 时间:2024/06/08 19:44:17
Private Sub Command1_Click()
WinSock1.Protocol = sckTCPProtocol
WinSock1.RemoteHost = Text1.Text
WinSock1.RemotePort = Text2.Text
WinSock1.Connect

If WinSock1.State <> sckConnected Then
Label3.Caption = CStr(GetState(WinSock1))
Exit Sub
End If

Label3.Caption = "连接成功"
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = True

End Sub

Private Sub Command2_Click()
WinSock1.Close
WinSock1.LocalPort = 0
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
Label3.Caption = "关闭连接"
End Sub

Private Sub Command3_Click()
Dim i As Integer
Dim str As String
i = 0
Do While i < Form3.List2.ListCount
str = Form3.Text1.Text + Form3.List2.List(i) + vbCrLf

i = i + 1
Loop
WinSock1.SendData str

End Sub
Private S

这只是连接的一端,另一端程序在哪?是不是你自己做的?也可能是那个程序出错呢!最好也发出来,如果代码太长,可以发到我信箱里:yinyunfang@163.com,保证帮你搞定!

如果你确信另一端程序没问题的话,你可以先试着改改这里,command1中winsock1连接后马上就判断其状态,是不是有点快了,如果另一端反应慢一些或是网络有些问题的话,可不可能出现还没连接上就判断连接状态了,当然不能连接了!这只是猜测!
最好把你的程序完整的打包发过来!慢慢看!
------------------------------------------
不好意思,忙了一天,也没时间回复你的问题,我刚才试了一下,的确是我上面说的那个问题,我改成这样,运行通过了!

问题就出在我说的那个地方.连接后直接取状态,是不行的,因为连接也需要时间!
我按下面的方法改了一下,可以运行!

Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = Text2.Text
Winsock1.Connect
Do
DoEvents
label3.caption="正在连接!"
Loop Until Winsock1.State = sckConnected Or Winsock1.State = sckError
if winsock1.state=sckError then
msgbox "连接错误!"
exit sub
else
Label3.Caption = "连接成功"
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = True
endif
有其它问题再给我发消息!

SERVER端有没有设置一个收听端口(LocalPort 属