procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
Str,Names:string;
Stream:TStringStream;
begin
Stream := TStringStream.Create('');
Stream.CopyFrom(AData,AData.Size);
Str:=Stream.DataString;
ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,Str[1],Length(Str));//这句话不对,不晓得如保调
end;
在delphi2009中TIdSocketHandle.sendto定义如下
procedure SendTo(
const AIP: string,
const APort: Integer,
const ABuffer: TIdBytes,
const AIPVersion: TIdIPVersion = ID_DEFAULT_IP_VERSION
);
Parameters
Parameters Description
AIP IP address to used for the remote endpoint.
APort Port number to use for the remote endpoint.
ABuffer Values to be send using the socket handle.
AIPVersion IP address family for the datagram transmission. Default value is ID_DEFAULT_IP_VERSION.
ABinding: TIdSocketHandle);
var
Str,Names:string;
Stream:TStringStream;
begin
Stream := TStringStream.Create('');
Stream.CopyFrom(AData,AData.Size);
Str:=Stream.DataString;
ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,Str[1],Length(Str));//这句话不对,不晓得如保调
end;
在delphi2009中TIdSocketHandle.sendto定义如下
procedure SendTo(
const AIP: string,
const APort: Integer,
const ABuffer: TIdBytes,
const AIPVersion: TIdIPVersion = ID_DEFAULT_IP_VERSION
);
Parameters
Parameters Description
AIP IP address to used for the remote endpoint.
APort Port number to use for the remote endpoint.
ABuffer Values to be send using the socket handle.
AIPVersion IP address family for the datagram transmission. Default value is ID_DEFAULT_IP_VERSION.
解决方案 »
- FastReport中时间显示问题
- 菜鸟求助(在只有以下控件时如何实现在客户端添加,修改,删除服务器端数据)?
- 作为一个程序员,工资仅这么点,大伙进来说说看...
- 用delphi可以编写收发短信的程序吗?怎么实现?
- cell的接口问题
- 在安装一个IMAGE控件时,提示“找不到文件DsgnIntf.dcu”文件,请问怎么解决。、
- 有无在好一些的实现屏幕右下角系统托盘的方法,Tnotifyicondata似乎反应较慢
- 有人用delphi做过屏保吗?
- 急急急,高分请教一个简单的脚本变量赋值问题,在线等!
- Delphi5的language的详细使用方法?
- 帮帮忙.......关于图片动态缩放显示的问题
- 100分SocketConnection的问题?急
begin
Result := Nil;
if Length(Value) = 0 then Exit;
SetLength(Result,Length(Value)* sizeof(Value[1]));
move(PByte(Value)^, Result[0], Length(Value)* sizeof(Value[1]));
end;
function StrToIdBytes(Value: String): TIdBytes;overload;
begin
Result := Nil;
if Length(Value) = 0 then Exit;
SetLength(Result,Length(Value)* sizeof(Value[1]));
move(PByte(Value)^, Result[0], Length(Value)* sizeof(Value[1]));
end;
Address already in use.'. Process Client.exe (2616)改了之后不晓得哪又出错了
function TForm1.StrToIdBytes(AValue: String):Tidbytes;
begin
Result := Nil;
if Length(AValue) = 0 then Exit;
SetLength(Result,Length(AValue)* sizeof(AValue[1]));
move(PByte(AValue)^, Result[0], Length(AValue)* sizeof(AValue[1]));
end;procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
Str,Names:string;
Stream:TStringStream;begin
Stream := TStringStream.Create('');
Stream.CopyFrom(AData,AData.Size);
Str:=Stream.DataString;
ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,StrToIdBytes(Str[1]),ID_DEFAULT_IP_VERSION{Length(Str)});
if GetName(ABinding.PeerIP,Names) then
Memo1.Lines.Insert(0,Names+':'+STR)//Memo1.Lines.Add(Names+':'+Str
else
Memo1.Lines.Insert(0,ABinding.PeerIP+':'+STR);//Memo1.Lines.Add(ABinding.PeerIP+':'+Str);
end;