Delphi indy Удаленный хост UDP клиент / сервер - PullRequest
2 голосов
/ 28 марта 2012

Можно ли подключиться к удаленному хосту с помощью indy-клиента и отправить данные на локальный сервер.
Я пытаюсь что-то вроде этого и ничего не получаю:

  Server:=TIdUDPServer.Create;
  Server.OnUDPException:=UDPException;
  Server.OnUDPRead:=UDPRead;
  Server.Bindings.Add.Port:=10;
  Server.Active:=true;
  //Server is listening to local IP

  Client:=TIdUDPClient.Create;
  with Client do begin
    Host:= '130.204.159.205'; //My IP
    Port:=10;
    Send('Hello');
  end;

Моя цель -создавать клиент / серверные приложения, которые будут взаимодействовать с UDP через Интернет

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

UDP - это транспорт без установления соединения. Он не гарантирует доставку данных, как это делает TCP, особенно в большой сети, такой как Интернет. Если TIdUDPServer не получает данные, то либо пакеты не достигают машины с самого начала, либо блокируются, прежде чем TIdDUPServer сможет их увидеть. Используйте анализатор пакетов, такой как Wireshark, чтобы убедиться, что пакеты достигают NIC, который прослушивает TIdUDPServer. Если это не так, то у вас есть проблема с сетью. Если это так, значит, у вас проблема с ОС.

0 голосов
/ 28 марта 2012

Да, это возможно.Давайте обойдем некоторые вопросы и попробуем вместо этого:

Host := '127.0.0.1'

Если это не сработает, проверьте, позволяет ли ваш брандмауэр Windows подключаться к вашему тестовому приложению.(Отключите локальные программные брандмауэры и попробуйте снова.)

...