关于winsock的sendtext的问题(0分)

  • 主题发起人 主题发起人 attacker2000
  • 开始时间 开始时间
A

attacker2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我一分都没有了,真的没办法呀,以后再补上行不行?
用serversocket发两次文本:
serversocket.socket.connection[0].sendtext('first');
serversocket.socket.connection[0].sendtext('second');
clientsocket只触发一次onread事件,得到的文本为:'firstsecond';
如果想触发两次onread事件,分别得到'first',和second应该怎么做?
以下从以前的帖子摘录:
在客户端程序中进行如下调用时
clientsocket1.Socket.SendText(‘gets‘);
clientsocket1.Socket.SendText(‘gets‘);
clientsocket1.Socket.SendText(‘gets‘);
服务端接收时会出现getsgets之类的现象,这可能是因为当缓冲区内的数据还未发送完时,又将新的文本放入缓冲区,计算机把它也当成同一批数据进行处理的缘故。为避免这个现象的发生,在程序内可采用一来一回“抛球”式的做法:
客户端 服务端
clientsocket1.Socket.SendText(‘data1‘) socket.ReceiveText;
socket.sendtext(‘ok‘);
socket.receivetext;
clientsocket1.Socket.SendText(‘ data2‘)
socket.ReceiveText;
socket.sendtext(‘end‘);
socket.receivetext;

但用上面那种方法还是不行。
请问如何使clientsocket触发两次onread事件???



 
有时候是不能偷懒的,你不要直接就这样发出去
你可以在每个字符串后面加个#0,然后接收端可以分出多个string
你也可以在每个字符串前面加一个数据指定后续字符串的长度,这样接收的时候也可以分开
各个部分
 
找找以前的答案,再问,不然更多的分也不够啦。
 

Similar threads

S
回复
0
查看
728
SUNSTONE的Delphi笔记
S
S
回复
0
查看
734
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部