首先我把UDP无连接协议的套接字调用时序图表示出来
在我把在Delphi中使用UDP协议实现数据通讯收发的实现方法总结如下:
例子描述:下面例子是我的一个实际设备通讯的例子,使用UDP协议在4660端口上发送'F1,00'(16进制,2个字节),在同一个端口上接收到'F1,00,00,00,00,00'((16进制,2个字节))
1.使用底层函数来实现
procedure TForm1.FormCreate(Sender: TObject);
var
WSAData:TWSAData;
begin
edtHost.Text:=192.168.1.222';
edtPort.Text:='4660';
//1.初始化Winsock
if (WSAStartup(MAKEWORD(2,0),WSAData)<>0) then
begin
//初始化失败
memInfo.Lines.Add('Winsock Init Failed');
exit;
end
else
memInfo.Lines.Add('Socket Start');
end;
procedure TForm1.btnFingerClick(Sender: TObject);
var
Info:string;
BufSend,BufRecv:array[0..1024] of byte;
skt:TSOCKET;
addr:TSockAddr;
Re:Integer;
S:String;
i:Integer;
begin
//=====================数据发送=======================================&