大放血.关于IdTCPClient控件高手请入.(200分)

  • 主题发起人 主题发起人 jingtao
  • 开始时间 开始时间
J

jingtao

Unregistered / Unconfirmed
GUEST, unregistred user!
今天安装了一个D6,发现那个IdTCPClient很好用.可是仔细一看,它没有侦听事件.
就是说没有如procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
这种东西.而IdTCPServer却有IdTCPServer1Execute这样的事件.

我如何让它侦听?或者说我如何用它实现IdTCPServer1Execute这样的事件?
 
用时钟定时去读取收到的数据,
INDY是个阻塞式的控件,
我用过一次这个控件,
不习惯就没用了
 
这个方法太笨,又没有效率.
大家有没有连接后直接映射给IdTCPServer的方法?
 
用一线程来监听是否有连接
 
用线程。看一下indy的示例嘛。
 
不笨的,阻塞式SOCKET才是正宗的SOCKET,
非阻塞式是为了适应早期的WINDOWS(没有多任务)
阻塞式是顺序工作(牢记),编程挺方便的,不过要抛弃TClientSocket和
TServerSocket的事件方式,习惯了就好了
我前几个月改用Indy,比Borland自带的控件好用多了
尤其是服务器端很稳定
 
它的服务端很好用
可是,客户端如何处理多线程呢?
服务端有个Execute事件来处理多线程
客户端呢?
 
我的意思是说:
Indy的Server存在一个Execute
但是Client只是主动连接Server
当Server发数据的时候如果它不主动去接怎么办?
 
Client端要主动去接,阻塞式就是这样工作的,用用就习惯了
 
开个线程接收吧
 
同意Research:阻塞式SOCKET才是正宗的SOCKET
 
同意哦:
我这几天在弄这个SOCKET,我的服务器是用C#写的,阻塞式SOCKET。
客户端是用DELPHI的TCPCLIENT,搞了几天,终一搞明白了......
只是客户端用了一个线程来接收,服务器端当有SOCKET连上来的时候,就启动一个线程.
我也担心用户太多的时候,服务器端的程序可出问题啊(线程太多)!
在C#中.SOCKET都是没有事件的(阻塞式),要产生事件的话,要自己写回调函数,太复杂了.
DELPHI的阻塞式SOCKET又不会产生事件,所以一点都不好弄.但是弄明白后,很好用哦!
 
各位老大
你们说的我都懂
我不是那个意思
是反连接啊
问题已经解决了,散分.
 
后退
顶部