社区
网络通信/分布式开发
帖子详情
用IdTCPClient如何自动接收IdTCPServer发送的数据
sunkevin
2004-11-30 10:24:40
Server端会不定时的发送数据到客户端,要求客户端在数据发过来后及时地接收数据,而不是用Timer控件来控制。也就是说IdTCPClient有没有相应事件来触发?
我刚接触Indy,希望大家帮帮忙!
{我在Indy网站下载的demo也没找到我这种问题的范例}
...全文
1320
12
打赏
收藏
用IdTCPClient如何自动接收IdTCPServer发送的数据
Server端会不定时的发送数据到客户端,要求客户端在数据发过来后及时地接收数据,而不是用Timer控件来控制。也就是说IdTCPClient有没有相应事件来触发? 我刚接触Indy,希望大家帮帮忙! {我在Indy网站下载的demo也没找到我这种问题的范例}
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
YaoKuiVcl
2005-01-12
打赏
举报
回复
晕
littlefishli
2004-12-21
打赏
举报
回复
indy的例子里已经写得很清楚了啊,用一个线程来控制,完全可以实现.
sunkevin
2004-12-17
打赏
举报
回复
在delphi3下的TCP控件可以连接,并能发送和接收数据。可用delphi7的INDY控件能连接,但发送数据后Server端提示“无效数据”,可发送的字符串是和TCP控件发送的字符串是一样的。为什么?
crbb
2004-12-13
打赏
举报
回复
那别用IdTCPClient了! 阻塞的满足不了你的要求
weyoung
2004-12-13
打赏
举报
回复
IdTcpClient当然可以实现。
创建一个线程,用于读取或发送数据。
在线程中Execute中执行如下代码:
While ( Not Terminated ) do
begin
Try
Socket.ReadBuffer(..);
Synchronize(ProcessRequest); //在这里处理服务端送过来的请求
Finally
end;
end;
sunkevin
2004-12-12
打赏
举报
回复
但是Server端是别人开发的,而且肯定不是用DELPHI
crbb
2004-12-12
打赏
举报
回复
lynmison(菻梓)的方法好象是解决你的问题的唯一办法!阻塞就这特色!
天行归来
2004-12-06
打赏
举报
回复
一般来说,Client是用来往Server发送数据,不用于接收数据,如果硬要用Client去Readln,那可以用线程处理。
我的做法是用Server-Server组件完成通讯。
sunkevin
2004-11-30
打赏
举报
回复
用IdTCPClient.readln时,如果没有数据传过来,它是一直在读,这样程序就停在那里不能操作了。有没有办法判断当有数据传过来再去readln。
sunkevin
2004-11-30
打赏
举报
回复
举个例子说,每一次读到数据时,怎样自动将数据写入文本文件中
sunkevin
2004-11-30
打赏
举报
回复
可是当读到数据后怎样自动触发相应的事件?
getit911
2004-11-30
打赏
举报
回复
IdTCPClient是阻塞式的。比如调用IdTCPClient.readln时,indy会一直停在这读,直到读到数据或出现错误。
关于
id
tcpserver
的使用
用
id
TCPServer
,客户端接上来时,如何取得客户端的IP? IP:=AThread.Connection.Binding.PeerIP;Port:=AThread.Connection.Binding.PeerPort; 尝试解答你的疑问:问题一:在Form1中放入
ID
TCPServer
控件,一旦有socket连接,
ID
TCPServer
自动
建立一个线程与之建立一个TCP/IP连接...
Delphi笔记-Indy10.5.5
Id
TcpServer
与
Id
TcpClient
Demo --服务器端
unit UntMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ComCtrls, XPMan, ExtCtrls, StdCtrls, Menus,
Id
Context,
Id
Scheduler,
Id
SchedulerOfThre
如何让
Id
TCPServer
&
Id
TCPClient
的应用穿透NAT?
如何让
Id
TCPServer
&
Id
TCPClient
的应用穿透NAT? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiNetwork/html/delphi_20061217114600108.html
Id
TCPServer
拥有公网IP和开放的端口,
Id
TCPClient
位于NAT之后,没法端口映...
Socket通讯使用
Id
TCPServer
Indy的全名是Internet Direct(也叫Winshoes),它是一套开放源代码的Internet控件集,它支持大部分流行的Internet协议。
Id
TCPServer
在开始工作后,首先会
自动
建立一个侦听线程T
id
ListenerThread,该线程负责侦听客户端的连接请求,并对每一个服务器已接受的连接创建一个T
id
PeerThread线程。每个连接通过运行各自所属的T
id
indy和socket的一些区别
1. 下面比较一下serverSokcet与clientSocket和
id
TcpServer
与
id
TcpClient
两组通讯组件的异同: socket即支持同部传送
数据
又支持异步传送
数据
。而
id
tcp则只支持同步传送
数据
。 serverSokcet与clientSocket是非阻塞式的,基于事件触发的。
id
TcpServer
与
id
TcpClient
是阻塞式的,基于多线
网络通信/分布式开发
1,593
社区成员
32,964
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章