本人想用WinSock控件编写一个C/S系统。
近日遇到了一个问题那就是:我每次联上服务器,服务器端的ConnectionRequest事件已经响应,可客户端却还在尝试联接。Winsock.state为6。为什么联接请求已经响应说明客户端与服务器端已经联接上了,Winsock.state应为7,可实际为6.
望高手解决。
相关源码如下:
StartTime = Timer
PauseTime = 15
Do While Not wskSend.State = 7
If Timer > PauseTime + StartTime Then '5 秒后超时退出
wskSend.Close
GoTo Failure
End If
Call connectToServer(wskSend)
DoEvents
Loop
Public Sub connectToServer(Socket As Winsock)
Select Case Socket.State
Case 6
Case 7
Case Else
Socket.Close
Socket.RemoteHost = Trim(BUSINESS_NADD)
Socket.RemotePort = Trim(SENDPORT)
Socket.Connect
End SelectEnd Sub还有DoEvent是什么意思?
近日遇到了一个问题那就是:我每次联上服务器,服务器端的ConnectionRequest事件已经响应,可客户端却还在尝试联接。Winsock.state为6。为什么联接请求已经响应说明客户端与服务器端已经联接上了,Winsock.state应为7,可实际为6.
望高手解决。
相关源码如下:
StartTime = Timer
PauseTime = 15
Do While Not wskSend.State = 7
If Timer > PauseTime + StartTime Then '5 秒后超时退出
wskSend.Close
GoTo Failure
End If
Call connectToServer(wskSend)
DoEvents
Loop
Public Sub connectToServer(Socket As Winsock)
Select Case Socket.State
Case 6
Case 7
Case Else
Socket.Close
Socket.RemoteHost = Trim(BUSINESS_NADD)
Socket.RemotePort = Trim(SENDPORT)
Socket.Connect
End SelectEnd Sub还有DoEvent是什么意思?
解决方案 »
- vb判断系统盘符并实现win2000和winxp自启动
- WINSOCK 小问题
- 半百分求:求4个字节的16进制形式小数转换成10进制小数?还有转回去的方法?
- 帮忙看个问题-vb连接access2003
- 大家帮我看看 我的sql语句错在哪里?
- 一个SQL语句
- 一个非常菜的问题,关于MsChart控件,但我很需要,谢谢帮忙!!
- 刚刚做好网站,高兴!散分了!没有接到分的来接分!
- 关于MSFlexGrid的打印问题,在线求助!马上可以给分,谢谢!
- ×××请问如何建立程序组和快捷方式×××
- 为什么VB得程序不能安装。
- jshyjyw(紫狐) ,bigbigfans(小骁) ,lihonggen0(李洪根,用.NET,标准答案来了)请进来拿分
'在这里加入连接成功后要做的操作
End SubPrivate 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)
'在这里加入连接失败后的操作
End Sub
Winsock1.RemotePort = "501" 'Text4.Text
Winsock1.ConnectDim i As Long
i = 1DoDoEvents
i = i + 1
Loop Until (Winsock1.State <> sckConnecting) Or (i = 800000)If Winsock1.State <> sckConnected Then
MsgBox "无法连接服务器,请检查您的网络联接", vbOKOnly, "联合商桥"
Command1.Enabled = True
Command2.Enabled = True
Winsock1.Close
Exit Sub
End IfDim strdata As Stringstrdata = ""
i = 1Sendstr = "'user='" & Text1.Text & "',password='" & Text2.Text & "',getftpaddress,"Winsock1.SendData SendstrDo
Winsock1.GetData strdata, vbString
DoEvents
i = i + 1
Loop Until strdata <> "" Or (i = 80000)strdata = RealRevStr(strdata)If Trim(strdata) = "userpasswordnotright" Then
MsgBox "您的帐号密码不对!", vbOKOnly, "联合商桥"
Command1.Enabled = True
Command2.Enabled = True
Winsock1.Close
Exit Sub
End IfIf Trim(Combo1.Text) = "211.167.68.114" Or Trim(Combo1.Text) = "211.167.68.111" Then
IsUp = True '确认是用114
End If If Trim(strdata) = "nopath" And IsUp Then
MsgBox "系统发现此帐号可能正在被另一个用户使用!如需帮助,请咨询您的服务商", vbOKOnly, "联合商桥"
' Command1.Enabled = True
' Command2.Enabled = True
' Winsock1.Close
' Exit Sub
End IfWinsock1.Close
你可以看一下