TClientSocket SendText 的问题(300分)

  • 主题发起人 主题发起人 lqy
  • 开始时间 开始时间
L

lqy

Unregistered / Unconfirmed
GUEST, unregistred user!
TClientSocket 设置为阻塞形
SendText一段字符过去后没反映回来,如果用ReceiveText的话就死锁了。
用数据包监测工具可以监测SendText数据成功,服务器返回
D3 9B 8B 51 AA AA
但用ReceiveText取不到该数据,也没有报错。
请问这个问题怎么解决,我估计是不是自定义的异常,Socket怎么Raise这些自定义的异常?

 
改用INDY下SOCKET控件吧。
 
lqy將你的代碼貼出來看看~~
單憑你這几句話是發現不了什么問題的~~
并且要將問題講詳細一點~~
 
對了﹐在阻塞模式下用Receivetext是讀不到數據的﹐你只能從TWinSocketStream中讀到數據。例如﹕
var RBuf:[0..1023] of char;
RText:string;
S:TWinSocketStream;
begin
S:=TWinSocketStream.Create(參數略);
FillChar(RBuf,SizeOf(RBuf),0);
if S.Read(RBuf,SizeOf(RBuf))=0 then //如果沒有收到
//your code
else RText:=RBuf;//這時收到的信息就會存儲在RText變量里了。
end;
 
Jelly0228说的也对!
阻塞时一般用于流的传送,Server端采用线程接受模式,这种用法很少用SendText给
Client端返回请求信息!
所以你可以采用非阻塞模式访问Server,然后Server用SendText返回命令串!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
897
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部