本人刚学indy TCP Server,疑惑一个问题:Server能判断是哪个IP发的数据吗?
比如a,b,c三台client给Server发信息,如果是a,就回复奖励100,是b,就奖励200,c就不回复。
Server能判断是那台client吗?是不是a,b,c给Server发数据必须包含自己的身份信息,让Server解析后判断?
比如a,b,c三台client给Server发信息,如果是a,就回复奖励100,是b,就奖励200,c就不回复。
Server能判断是那台client吗?是不是a,b,c给Server发数据必须包含自己的身份信息,让Server解析后判断?
解决方案 »
- 窗体最大化时,控件按比例变化
- 怎样遍历A目录内文件且和B目录内文件比较?
- 如何提取应用程序对话框里显示的数据?
- D7连接SQL2000中文版,用中文字段和用英文字段有没有使用限制?
- 安装程序制作时,如何知道需要哪些dll文件呢?
- 怎样向一个动态连接库里面传送一个数据集???
- 请问在程序运行中怎么才能给一个表动态的增添或删除字段啊?
- 字符串替换函数是什么?
- 怎样删除动态创建的控件
- 用TmediaPlayer控件播放多个视频文档,怎样判断一个文档的播放已经结束,自动打开另一个文档.或者说这个控件的FileName属性值能不能是多个文件?
- Uses,在“界面去”和“实现区”有什么用?
- 'delete from zyxxb where 内部编号='''+deletenum+''' and 姓名='''+deletename+''''
begin
if form1.IdTCPClient1.Connected then begin
AThread.WriteLn(str);
end;
//A机
Send(AThread,'a');procedure TForm2.IdTCPServer1Execute(AThread: TIdPeerThread);
var
str: string;
begin
try
str := AThread.Connection.Readln();
except end;
//
if str = ‘a’ then begin
AThread.Connection.Writeln('100');
end;
if str = ‘b’ then begin
AThread.Connection.Writeln('200');
end;
if str = ‘c’ then begin
//
end;end;
也就是说,以下这个函数,每个链接都生成一个线程,同一时刻如果有两个会话,也是互不干扰的?
procedure TfrmMain.ServerExecute(AContext: TIdContext);
begin
// Your stuff for OnExecute goes here.
end;上面的函数是indy10的,和indy9完全不同,nydns朋友的这个例子是indy9的。上面的函数有个参数AContext,如何在这个函数里面接收数据并回复数据呢?