首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

Winsock有关问题,客户端收到数据未来得及GetData,服务端就Close导致客户端出错

2012-08-03 
Winsock问题,客户端收到数据未来得及GetData,服务端就Close导致客户端出错。VB codeOption ExplicitPrivate

Winsock问题,客户端收到数据未来得及GetData,服务端就Close导致客户端出错。

VB code
Option ExplicitPrivate Sub Form_Load()Winsock1.LocalPort = 8888Winsock1.ListenWinsock2.Connect "127.0.0.1", 8888End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)Winsock1.CloseWinsock1.Accept requestIDEnd SubPrivate Sub Winsock2_Connect()    Winsock2.SendData "123"End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)    Dim a As String    Winsock2.Close    DoEvents    Debug.Print Winsock1.BytesReceived  '连接被对方断开后,缓冲区还有三个字节    Winsock1.GetData a                  'GetDdata方法会出错'    Winsock1.PeekData a                'PeekData也会出错    Debug.Print aEnd Sub

为何服务端主动关闭连接,客户端就不能GetData了?还有办法取出缓冲区的数据吗?

上次我用Winsock连接某Web服务器,对方把数据发过来马上就关闭了连接,我这边已经触发了Close事件之后还触发DataArrival,此时连接已经被关闭了,无法GetData。

[解决办法]
探讨
引用:

winsocket 有一个 error事件 这里处理 或者加上错误处理 忽略


哎呀!我问的是:服务端关闭连接后,客户端缓冲区的数据还能否取出来。

不是出错处理的问题。

热点排行