我的程序在服务器端,需要用INI文件配置运行时的端口数目,端口数目在每次程序运行时都可能不一样。我生成一个TSERVERSOCKET的指针,然后运行时根据INI文件来生成相应数目的TSERVERSOCKET数组,然后在配置其内容
procedure TMain.SocketDataPRO(Sender: TObject;Socket: TCustomWinSocket);
var
Thread:DataThread;
begin
//多个SOCKET公用的读取信息,显示信息,保存信息程序
beep;
end;
SocketList: array of TServerSocket;
SetLength(SocketList,portcount);
for i:=0 to portcount-1 do
begin
SocketList[i]:=TServerSocket.Create(self);
with SocketList[i] do
begin
ServerType:=stThreadBlocking;
Port:=StrToInt(TELECTL.INPORTBOX.Items[i]);
//设定消息处理函数(关键之处)
OnClientRead:= Main.SocketDataPRO;
OnClientWrite:= Main.SocketDataPRO;
//OnAccept:=Main.SocketDataPRO;
//OnClientDisconnect:=Main.SocketDataPRO;
Open;
end;
end;
但我指定的客户端信息(OnClientRead,OnClientWrite)消息响应不能工作,而OnAccept、OnClientdisconnect就可以。如何可以让OnClientRead,OnClientWrite也能绑定到我自己的函数呢?
procedure TMain.SocketDataPRO(Sender: TObject;Socket: TCustomWinSocket);
var
Thread:DataThread;
begin
//多个SOCKET公用的读取信息,显示信息,保存信息程序
beep;
end;
SocketList: array of TServerSocket;
SetLength(SocketList,portcount);
for i:=0 to portcount-1 do
begin
SocketList[i]:=TServerSocket.Create(self);
with SocketList[i] do
begin
ServerType:=stThreadBlocking;
Port:=StrToInt(TELECTL.INPORTBOX.Items[i]);
//设定消息处理函数(关键之处)
OnClientRead:= Main.SocketDataPRO;
OnClientWrite:= Main.SocketDataPRO;
//OnAccept:=Main.SocketDataPRO;
//OnClientDisconnect:=Main.SocketDataPRO;
Open;
end;
end;
但我指定的客户端信息(OnClientRead,OnClientWrite)消息响应不能工作,而OnAccept、OnClientdisconnect就可以。如何可以让OnClientRead,OnClientWrite也能绑定到我自己的函数呢?
解决方案 »
- 如何取得excel 中sheet内某列数据的最大值?
- 我要更新一个表的所有记录,为什么进入了死循环(在线等待中)
- 简单基础问题
- 谁有空帮帮我吗:)
- 我用的是sql server数据库,我如何在delphi里面捕获数据库的日志信息 (急急急)
- 请教:Dephi 中将程序最小化为任务栏中的图标,但我不知道如何加入图标右(或左)键菜单,请高手指点!
- 如何在quick report中,打印数值的同时,打印它的大写?
- 跨进程在 TDBGridE上写数据
- 再次求救,大家帮小弟一把吧
- 如何在一個form顯示一個非模態窗體﹖
- 请教在ClientDataSet主从表中对DBGrid的OnTitleClick事件如何排序?
- 有没有人遇到将foxpro的dbf表导入到acess表后不识别中文字段的问题!
SERVERSOCKET.OnClientWrite:= ServerSocket1ClientWrite;
别忘Type中声明
ServerSocket1ClientRead
ServerSocket1ClientWrite
type
ServerSocket1ClientRead=procedure SocketDataPRO(Sender: TObject;Socket: TCustomWinSocket) of Tmain;
Tmain是我的窗体类实例
是这样吗?