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

socket紧急有关问题,技术经理问小弟我的有关问题,紧

2013-09-29 
socket紧急问题,技术经理问我的问题,紧急我们一个项目,建了一个客户端socket连接,当向服务端发送CCPP,服

socket紧急问题,技术经理问我的问题,紧急
我们一个项目,建了一个客户端socket连接,当向服务端发送"CCPP",服务端会验证返回信息,我们要判断返回码,如果是"A"就成功,如果返回码为"B"就失败,我们想在senddata后立即判断返回码,代码如下:

Private Sub Command1_Click()
If Winsock1.State = sckConnected Then Winsock1.SendData "CCPP"
msgbox str
end sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData str, vbString '按照字符串类型接收信息
End Sub

请问为什么返回码变量str始终为空呢?因为有多种可能的命令,我不想在Winsock1_DataArrival里判断,就想在senddata后立即判断
[解决办法]
单加 Sleep 肯定不行。因为你的 Sleep 以及随后的代码处于独占地位。

直接在 Winsock1_DataArrival 事件中显示不是更直接吗?

当然,你也可以在 Command1_Click 事件中用加 DoEvents 的循环来等待(尽管不是太好):

Private Sub Command1_Click()
str = ""
If Winsock1.State = sckConnected Then Winsock1.SendData "CCPP"
Do Until str > ""
    DoEvents
Loop
msgbox str
end sub

另外,好的编程习惯不推荐用 str 这样的关键字作变量名。

热点排行