各位大哥能不能帮忙呀
客户端发发送信息server能收到
但server发送信息客户端不能收到。
请帮助我
谢谢各位大侠了type
  Tmsg=record
    sendName: string;
    smsg: string[100];
 end;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);  //server端接收发送信息
var
   rmsg: Tmsg;
   smsg: string;
begin
   AData.ReadBuffer(rmsg,AData.Size);
   memo1.Lines.Add('Send from: '+rmsg.sendName+'  MSG: '+rmsg.smsg);
   if rmsg.sendName='chenji' then
   begin
      rmsg.sendName:='server';
      rmsg.smsg:='ok!';
 //     AData.WriteBuffer(rmsg,sizeof(rmsg));
     ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,rmsg,sizeof(rmsg));
   end;
end;procedure TForm1.Button3Click(Sender: TObject););//客户端连接
begin
  IdUDPClient1.Host:='172.22.153.43';
  IdUDPClient1.Port:=505;
  IdUDPClient1.ReceiveTimeout:=5000;
  IdUDPClient1.Active:=true;
  showmessage('connected ok!');end;procedure TForm1.Button2Click(Sender: TObject);//客户端发送信息var
  smsg: Tmsg;
begin
  smsg.sendName:='chenji';
  smsg.smsg:='wlecome to my programs!';
  memo2.Lines.Add(smsg.sendName+' send: '+smsg.smsg);
  IdUDPClient1.SendBuffer(smsg,sizeof(smsg));
  IdUDPClient1.Active:=false;end;procedure TForm1.Button1Click(Sender: TObject);
begin
    IdUDPServer1.Bindings.Add.IP:='172.22.153.43';
    IdUDPServer1.Bindings.Add.Port:=505;
    IdUDPServer1.Active:=true;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
   memo1.Clear;
   memo2.Clear;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   IdUDPServer1.Destroy;
   IdUDPClient1.Destroy;
end;procedure TForm1.Button5Click(Sender: TObject); //客户端接收信息
var
  msg: tmsg;
  Rmsg: string;
begin
   IdUDPClient1.ReceiveBuffer(msg,sizeof(msg));
   IF MSG.sendName<>'' THEN
      memo2.Lines.Add(msg.sendName+' send: '+ msg.smsg);
   showmessage('receive ok!');
end;end.

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);//客户端发送信息var
      smsg: Tmsg;
    begin
      smsg.sendName:='chenji';
      smsg.smsg:='wlecome to my programs!';
      memo2.Lines.Add(smsg.sendName+' send: '+smsg.smsg);
      IdUDPClient1.SendBuffer(smsg,sizeof(smsg));
       IdUDPClient1.ReceiveBuffer(msg,sizeof(msg));
       IF MSG.sendName<>'' THEN
          memo2.Lines.Add(msg.sendName+' send: '+ msg.smsg);
       showmessage('receive ok!');  IdUDPClient1.Active:=false;end;接受要放在发送后面,你一个按钮发送了就关闭了服务端接受到后返回消息怎么可能收到?服务端直接返回消息,可是你的客户端要等到点按钮才能收到,这样是行不通的
      

  2.   

    to xingzj0117:
     好像还是收不到信息呀
    我照你的方法做了