当前位置:编程学习 > VB >>

VB 和 PHP SOCKET 通信问题 请各位帮忙看看

--------------------编程问答-------------------- 很显然,你这个服务端代码只能支持一个客户端连接一次,所以必然会出现这个结果,建议你还是另找个Winsock多客户端通讯方面的例子看看吧,不是一句两句能解释清楚的。 --------------------编程问答-------------------- 我觉得,应该是你的 PHP刷新时,它是把先的连接断开,重新创建连接的。
而你的VB程序那儿,只支持一个连接;
  PHP刷新造成连接断开时,你的tcpServer并没有断开(VB端应该是不会接到通知的吧),因此不能接受新的连接请求。
--------------------编程问答--------------------
引用 2 楼 Chen8013 的回复:
我觉得,应该是你的 PHP刷新时,它是把先的连接断开,重新创建连接的。
而你的VB程序那儿,只支持一个连接;
  PHP刷新造成连接断开时,你的tcpServer并没有断开(VB端应该是不会接到通知的吧),因此不能接受新的连接请求。



Private Sub Form_Load()
    winsock1.LocalPort = 8888
    winsock1.Listen
End Sub

Private Sub winsock1_ConnectionRequest(ByVal requestID As Long)
    If winsock1.State <> sckClosed Then winsock1.Close
        winsock1.Accept requestID
        Label1.Caption = "有客户端接入本机!IP:为" & winsock1.RemoteHostIP

End Sub

Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    winsock1.GetData strData
    Text1.Text = strData
    winsock1.Close
End Sub


我已经增加了   close  但是好像还是不行 --------------------编程问答--------------------
引用 1 楼 CityBird 的回复:
很显然,你这个服务端代码只能支持一个客户端连接一次,所以必然会出现这个结果,建议你还是另找个Winsock多客户端通讯方面的例子看看吧,不是一句两句能解释清楚的。


引用 2 楼 Chen8013 的回复:
我觉得,应该是你的 PHP刷新时,它是把先的连接断开,重新创建连接的。
而你的VB程序那儿,只支持一个连接;
  PHP刷新造成连接断开时,你的tcpServer并没有断开(VB端应该是不会接到通知的吧),因此不能接受新的连接请求。




我的问题解决了 


在 winsock1.Close 下面加了  重新监听 就行了
 
winsock1.Listen
--------------------编程问答-------------------- 看来我还是猜对原因了。
--------------------编程问答-------------------- 虽然加上Winsock1.Listen进行重新监听,但是依然只能接受一个客户端,如果再开个新页面马上就该出错了! --------------------编程问答--------------------
引用 6 楼 CityBird 的回复:
虽然加上Winsock1.Listen进行重新监听,但是依然只能接受一个客户端,如果再开个新页面马上就该出错了!

他的设计,看样子只能接受一个连接的。
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,