首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 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后立即判断
这个应该在 Winsock 控件的 DataArrival() 事件中看接收到什么返回信息。

基本流程应该是(伪代码,具体你自己实现):

发送验证请求
清除接收标志(这个变量应该是模块级的或全局的)
记录当前时间
do
  Sleep() 这儿10到100ms都可以,网络快的取少些,慢的可以取多些,都取10ms也行
  Doevents
  if (已接收数据) then
     检查并设置验证结果标志(成功/失败)
     exit do
  end if
  获取当前时间
  if (已经超时,比如5秒) then 设置验证失败 :exit do
  Doevents
loop
if (验证成功) then
  做验证成功的事…………
else
  做验证失败的事…………
  提示失败
endif

热点排行