如何使用Delphi的Socket组件进行阻塞方式通信?(65分)

  • 主题发起人 主题发起人 Pantheon
  • 开始时间 开始时间
P

Pantheon

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用socket让一台机器定时向几台机器发送数据,可是以前没有用过
TServerClientThread.
谁能提供一些例子.比如如何在线程中响应Socket的读写事件,
如何在Socket中利用定时器等.
Thanx
 
比如如何在线程中响应Socket的读写事件,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
用阻塞方式好象没有读写事件, 他好象类似于同步方式,开一个线程后就不断地读写。 (最近才接触Socket, 不太明白地说。 )
 
在主线程中响应ClientRead和ClientWrite,将信息传给对应线程的
Data.
 
非常关心这个问题,
 
首先重载TServerClientThread的ClientExecute方法:
procedure TMyThread.ClientExecute;
begin
repeat
until...
end;
在ServerSocket.OnGetThread中创建自己的线程:
procedure ServerSocket1GetThread(...);
begin
MyThread := TMyThread.Create(False, ClientSocket);
end;
当发生ServerSocket.ClientRread (or ClientWrite)时,
修改对应线程的Tserverclientthread.Data即可.
当然最好是让ServerClientThread自己主动调用TWinSocketThread操纵
ClinetSocket的读写.
ThreadCache用来保存以创建的线程,这样当一个会话完成后,不是方对应线程,
而是留作以后使用,节省了时间,但耗费资源.
 
多人接受答案了。
 
后退
顶部