阿
阿伟~
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”请问各位富翁,怎么会这样?是不是我的方法不对还是其他什么原因
另,分不算多,但大家都是想学知识-_-!!
客户端代码如下:
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”请问各位富翁,怎么会这样?是不是我的方法不对还是其他什么原因
另,分不算多,但大家都是想学知识-_-!!