UDP通信的应答疑问 ( 积分: 20 )

  • 主题发起人 主题发起人 阿伟~
  • 开始时间 开始时间

阿伟~

Unregistered / Unconfirmed
GUEST, unregistred user!
最近想写一个利用indy中udp控件进行通信的东东却发现如下问题:
客户端代码如下:
var
udpc: TIdUDPClient;
str:string;
udpc := TIdUDPClient.Create(self);
udpc.Port := 9600;
udpc.Host := '127.0.0.1';
udpc.Active := True;
try
udpc.send('it is only a test');
except
showmessage('send error');
str := udpc.ReceiveString;//此处用于接受服务端的应答
/****************************************************/
服务端代码如下:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
s: TStringStream;
vport: integer;
vip: string;
begin
s := TStringStream.Create(' ');
s.CopyFrom(AData, AData.Size);
Memo1.Lines.Add(s.DataString);
Memo1.Lines.Add(ABinding.DisplayName);
Memo1.Lines.Add(ABinding.IP);
vport := ABinding.Port;
vip := ABinding.IP;
IdUDPServer1.Send(vip, vport, '已经收到');//客户端发送后运行到此句报错
s.Free;
end;
运行客户端和服务端时能接受到'it is only a test',但在服务端接受完毕后准备做应答时却报:“SOCKET ERROR #10049,CANNOT ASSIGN REQUESTED ADDRESS”请问各位富翁,怎么会这样?是不是我的方法不对还是其他什么原因

另,分不算多,但大家都是想学知识-_-!!
 
最近想写一个利用indy中udp控件进行通信的东东却发现如下问题:
客户端代码如下:
var
udpc: TIdUDPClient;
str:string;
udpc := TIdUDPClient.Create(self);
udpc.Port := 9600;
udpc.Host := '127.0.0.1';
udpc.Active := True;
try
udpc.send('it is only a test');
except
showmessage('send error');
str := udpc.ReceiveString;//此处用于接受服务端的应答
/****************************************************/
服务端代码如下:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
s: TStringStream;
vport: integer;
vip: string;
begin
s := TStringStream.Create(' ');
s.CopyFrom(AData, AData.Size);
Memo1.Lines.Add(s.DataString);
Memo1.Lines.Add(ABinding.DisplayName);
Memo1.Lines.Add(ABinding.IP);
vport := ABinding.Port;
vip := ABinding.IP;
IdUDPServer1.Send(vip, vport, '已经收到');//客户端发送后运行到此句报错
s.Free;
end;
运行客户端和服务端时能接受到'it is only a test',但在服务端接受完毕后准备做应答时却报:“SOCKET ERROR #10049,CANNOT ASSIGN REQUESTED ADDRESS”请问各位富翁,怎么会这样?是不是我的方法不对还是其他什么原因

另,分不算多,但大家都是想学知识-_-!!
 
怎么没人顶啊
 
server与client用二个port试试
 
已经搞定了,自我结帖行否?
 
接受答案了.
 
后退
顶部