谢谢你的帮助。这个问题已经解决:是因为服务器连接有请求是有一句:
If SerSock.State <> sckClosed Then
SerSock.Close
End If
去掉后解决了这个问题,但现在又有了新的问题。一旦有连接,客户端显示信息连接成功。但服务器端却报错:
Run-time error'40020';
Invalid operation at current state
请问这是什么原因?
If SerSock.State <> sckClosed Then
SerSock.Close
End If
去掉后解决了这个问题,但现在又有了新的问题。一旦有连接,客户端显示信息连接成功。但服务器端却报错:
Run-time error'40020';
Invalid operation at current state
请问这是什么原因?
看你发的代码好象你采用了第二种办法,那样的话那个if语句你就不能去掉,否则就会出现你所说的错误
每一次请求连接都先关闭
SerSock.Close
ozw(沧浪客)兄所说的方法还是会有第一次的问题出现啊。
用一个控件数组,0号元素始终监听,把连接请求分配给别的实例
http://www.csdn.net/expert/topic/260/260059.shtm
nSocket = nSocket + 1
Load srSocket(nSocket)
srSocket(nSocket).Accept requestID
lblRemoteHost(nSocket).Caption = srSocket(nSocket).RemoteHostIP
End Sub
这一段能不能帮我解释一下。谢谢!
那个nSocket是个全局变量,记录着生成的Socket实例总数
当客户端连接请求到来时,被我监听端口得到,响应你上面说的那个事件,我要再新生成一个实例与该客户保持连接,就用了Load srSocket(nSocket)语句生成新的实例,同时令这个新的实例接收requestID
没什么啊,可能是我表述的不够清楚,哪句没听懂,再问一下吧
以后有问题还请多多指教。
很高兴认识你:snakeegg(蛇蛋)
我的水平其实很烂的,一起学习啊 @_@