我想做这么个功能,我现在在服务器端写了这么个程序,主要是接收不同机器发送的id,如下
procedure Tmainform.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Var
s.str:String;
begin
if AData.Size<=0 then
Exit;
SetLength(s,AData.Size);
AData.Read(s[1],AData.Size);//读取接收到的广播数据.
if s<>'' then//如果读取到不为控的字符串,则证明该机器存在,怎根据传来的id,查询数据库
begin
//ShowMessage('可以发送消息!!!!');//把字符串回发回去,发送的端口7897
dm.ADOQuery1.Close;
dm.ADOQuery1.sql.Clear;
str:='select * from txsz where id='''+s+''' ';
dm.ADOQuery1.SQL.Add(str);
dm.ADOQuery1.Open;
end;
end;
我要问的是,我用这个方法,当客户端发送用户id的时候,假设同时到达,服务器端,怎么读取数据AData.Read(s[1],AData.Size);,是挨个读取呢,还是只取其中一个id?
procedure Tmainform.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Var
s.str:String;
begin
if AData.Size<=0 then
Exit;
SetLength(s,AData.Size);
AData.Read(s[1],AData.Size);//读取接收到的广播数据.
if s<>'' then//如果读取到不为控的字符串,则证明该机器存在,怎根据传来的id,查询数据库
begin
//ShowMessage('可以发送消息!!!!');//把字符串回发回去,发送的端口7897
dm.ADOQuery1.Close;
dm.ADOQuery1.sql.Clear;
str:='select * from txsz where id='''+s+''' ';
dm.ADOQuery1.SQL.Add(str);
dm.ADOQuery1.Open;
end;
end;
我要问的是,我用这个方法,当客户端发送用户id的时候,假设同时到达,服务器端,怎么读取数据AData.Read(s[1],AData.Size);,是挨个读取呢,还是只取其中一个id?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货