UDP-сокеты Нужно вести обмен по UDP с удалённым IP-адресом.
Имеется следующий код:
procedure ReceiveUdp;
var
ws: TWSAData;
fromaddr: sockaddr_in;
fromaddr_size: integer;
Listener: TSocket;
LocalHost: TSockAddrIn;
Buff: array[0..2000] of byte;
begin
WSAStartup($101, ws);
listener:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
localhost.sin_addr.S_addr:=htonl(INADDR_ANY);
localhost.sin_family:=AF_INET;
localhost.sin_port:=htons(32001);
i := bind(listener, localhost, sizeof(localhost));
if (i<>0) then begin
while (True) do begin
fromaddr_size := sizeof(fromaddr);
i:=recvfrom(listener, buff, sizeof(buff), 0, fromaddr, fromaddr_size);
if ((i>0) and (i <> SOCKET_ERROR) then
// пакет принят
// какие-то действия
end;
end;
end;
Программа по непонятным мне причинам не работает: принимаются данные только от
адреса 127.0.0.1. Подскажите в чём ошибка.