打开端口 function TFormComm.StartUdpService():Boolean; var fIPStr:string; begin m_UdpSocket.Close; m_PortOpen:=True; m_UDPSocket.LocalPort:=m_CommParams.PortNumber; try fIPStr:=GetLocalIPAddr(); m_UdpSocket.Bind(m_CommParams.PortNumber); except m_PortOpen:=False; end; if m_PortOpen then AddCommRecord('.启动服务成功!') else AddCommRecord('.启动服务失败!'); Result:=m_PortOpen; end;
可以的话把你服务器端代码贴出来
function TFormComm.StartUdpService():Boolean;
var
fIPStr:string;
begin
m_UdpSocket.Close;
m_PortOpen:=True;
m_UDPSocket.LocalPort:=m_CommParams.PortNumber;
try
fIPStr:=GetLocalIPAddr();
m_UdpSocket.Bind(m_CommParams.PortNumber);
except
m_PortOpen:=False;
end;
if m_PortOpen then
AddCommRecord('.启动服务成功!')
else
AddCommRecord('.启动服务失败!');
Result:=m_PortOpen;
end;
i,c,p1,p2,count,fsize:integer;
tmpOle:Olevariant;
Buffer:Pointer;
fstr,m_RemoteAddress,ftest,tmpStr:string;
fOld,fNew:Word;
m_TempRece,m_RealeseRecv:TCRCDataBuf;
begin
tmpOle:=VarArrayCreate([0,bytesTotal-1],varByte);
try
m_UdpSocket.GetData(tmpOle,varbyte+vararray,bytesTotal);
except
end; Buffer:=varArraylock(tmpOle);
Copymemory(@m_TempRece,Buffer,bytestotal); VarArrayUnLock(tmpOle);
//设置接收数据时间
m_LastTime:=GetTickCount();
//显示接收数据大小
AddCommRecord('.');
fsize:=bytesTotal;
m_RemoteAddress:=m_UDPSocket.RemoteHostIP+':'+IntToStr(m_UDPSocket.RemotePort);
fstr:=Format('.从 "%s:%d" 接收数据,大小: %d ...',[m_UDPSocket.RemoteHostIP,m_UDPSocket.RemotePort,fsize]);
AddCommRecord(fstr,clBlue);
//数据处理
。
end;
m_UdpSocket.Bind(m_CommParams.PortNumber);