ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
63623
Apтём (24.07.2006 16:56, просмотров: 1136)
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. Подскажите в чём ошибка.