关于dUDPServer的疑问

hanger1978 2004-12-02 08:15:41
我想做这么个功能,我现在在服务器端写了这么个程序,主要是接收不同机器发送的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?
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoenixsharp 2004-12-03
  • 打赏
  • 举报
回复
有可能,比如网络繁忙,数据只到了一半也是有可能地.你最好规整数据的长度,如只读LEN这么长,而这段长度刚好是一个包的长度.
hanger1978 2004-12-03
  • 打赏
  • 举报
回复
??
hanger1978 2004-12-03
  • 打赏
  • 举报
回复
麻烦你们说具体掉好吗,我现在只是把在线的用户,通过udp把他们的用户id发送到服务器端,然后服务器端接收到了用户id,就开始查询数据库,我这样做,是否有问题,如果有问题,请告诉我,我因改怎么改
hanger1978 2004-12-02
  • 打赏
  • 举报
回复
我说的不明白吗,请告诉我

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧