怎么获得本机的空闲随机端口?200分奉送(200分)

  • 主题发起人 主题发起人 chaneycn
  • 开始时间 开始时间
C

chaneycn

Unregistered / Unconfirmed
GUEST, unregistred user!
在用FTP的数据端口向服务器发送数据时,得先把本机的一个要作为数据传输的端口告诉服务器
,怎么才能得到一个本机的空闲端口呢,我的FTP是用TServerSocket和TClientSocket做的
,也就是用port 命令时的最后的port 192,168,0,1,?,?(?怎么确定),请指教
有没有别的方法实现?[:(]
 
function NewUdpPort(udp:TNMUdp):integer;
var
gsin:TSOCKADDRin;
// udptmp:TNMUdp;
begin
// udptmp:=tnmudp.Create(nil);
gSIN.SA_FAMILY:=2;//udp
gsin.sin_addr.s_un_b.s_b1:=#127;
gsin.sin_addr.s_un_b.s_b2:=#0;
gsin.sin_addr.s_un_b.s_b3:=#0;
gsin.sin_addr.s_un_b.s_b4:=#1;
Result:=8000;
while true do
begin
gsin.sin_port:=htons(Result);
if bind(udp.ThisSocket,gsin,SIZEOF(gSIN))<>0 then
inc(Result)
else
Break;
end;

// udptmp.Free;
// udp.LocalPort :=Result;
end;
这是从我以前程序中COPY出来的,你看着改一下就可以了
 
WinSock连接的端口好像是随机指定的,
我曾经想用指定的端口去连接服务器,但是始终无法成功
 
后退
顶部