我曾经如此尝试过,但是很遗憾,不行!
如果连续用SendData发的话,你会发现一个很奇怪的现象,你所发送的字符串全都拼合在一起了。这样,你的代码中用GetData接受到的是:"NameAgeSex"
--------------------------------------------------------------------
Made by Thirdapple's Studio(http://3rdapple.51.net/)
如果连续用SendData发的话,你会发现一个很奇怪的现象,你所发送的字符串全都拼合在一起了。这样,你的代码中用GetData接受到的是:"NameAgeSex"
--------------------------------------------------------------------
Made by Thirdapple's Studio(http://3rdapple.51.net/)
如果连续用SendData发的话,你会发现一个很奇怪的现象,你所发送的字符串全都拼合在一起了。这样,你的代码中用GetData接受到的是:"NameAgeSex"
--------------------------------------------------------------------
Made by Thirdapple's Studio(http://3rdapple.51.net/)
要么每发一个就等待自己定义的反馈信息返回后再发!
依你的例子。
winsock1.senddata "Name" & chr(0) & "Age" & chr(0) & "Sex" winsock2.getdata re
i=1
f=1;
t=instr(f,re,chr(0))
while l<>0
str(i)=mid(re,f,l-f)
i=i+1
f=l+1
t=instr(f,re,chr(0))
wend
随手写的,可能有错,反正就是这个意思
可以发送的字节长度有限制吗?
do while true
if winsock1.bytesreceived>0 then
Winsock1.GetData strData
if strData="OK" then exit do
End if
doevents
loop
Winsock1.SendData "Age"
do while true
if winsock1.bytesreceived>0 then
Winsock1.GetData strData
if strData="OK" then exit do
End if
doevents
loop
Winsock1.SendData "Sex"
do while true
if winsock1.bytesreceived>0 then
Winsock1.GetData strData
if strData="OK" then exit do
End if
doevents
loop在Winsock2处调用:
Winsock2.GetData strName,vbString
Winsock2.SendData "OK"
Winsock2.GetData strAge,vbString
Winsock2.SendData "OK"
Winsock2.GetData strSex,vbString
Winsock2.SendData "OK"这是一种简单的应答方式,还是可以用的。
SendComplete=True
End SubWinSock1.SendData "xxx"
While SendComplete=False
DoEvents
Wend
SendComplete=False
SendComplete=True
End SubWinSock1.SendData "xxx"
While SendComplete=False
DoEvents
Wend
SendComplete=False
缓存区最大好象是65535
可以使用自己定义的协议模式
也可以是使用XML以前都是用自己定义的协议模式
StrStart+Yourvalue1+StrSpace+YourValue2+StrSpace+Strend
发送出
根据这个模式在接收方解析现在用XML,你可以利用XML-RPC,SOAP,或自己规定的XML协议如:
发出
<Values>
<value1>
strvalue1
</value1>
<value2>
strvalue2
</value2>
</values>
在另一端,通过XML DOM进行解析
我建议构造符合XML-RPC规范或SOAP规范的协议好些
以后可以对这个应用进行深度开发
指望TCP/IP完成参数解析是不可取的
依你的例子。