关于delphi7 Tcpclient接收数据

T_Y890803 2012-07-31 08:41:49
利用socket发送和接收数据的,执行完TcpClient1.Sendln后,服务端接收了数据,也返回数据过来给客户端,客户端调用WaitForData方法,再调用 TcpClient1.Receiveln,数据一直没有返回,程序卡死了,要怎么解决
求大神帮忙解决 分数少
...全文
645 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsym2000 2012-11-21
  • 打赏
  • 举报
回复 1
以下可以彻底解决你的问题,有数据才用 TcpClient1.Receiveln,否则会一直等下去 if TcpClient1.WaitForData(2000) then begin TcpClient1.Receiveln; end;
T_Y890803 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Tcpclient的BlockMode设成bmNonBlocking
[/Quote]
改了这个之后连接不上服务器
s11ss 2012-08-01
  • 打赏
  • 举报
回复
直接ReceiveLn就行了吧,不用WaitForData吧?
T_Y890803 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
直接ReceiveLn就行了吧,不用WaitForData吧?
[/Quote]
直接ReceiveLn也不行
T_Y890803 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Tcpclient的BlockMode设成bmNonBlocking
[/Quote]
这个还没有试过 请问下这个属性的作用是什么
bdmh 2012-08-01
  • 打赏
  • 举报
回复
Tcpclient的BlockMode设成bmNonBlocking

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧