UDP Socket обработка - PullRequest
       13

UDP Socket обработка

0 голосов
/ 05 февраля 2012

Я хочу использовать UDP Socket для простой отправки аудиопотока.Моя проблема в том, что я не могу заставить его работать, я думал, что было бы проще, чем использовать TCP IP.

Что я сделал, я уронил компонент UDPSocket в моей форме и для серверной части я использовал этот код

  with udpServer do
  begin
    LocalHost := '127.0.0.1';
    LocalPort := '5002';
    Open();
    Active := True;
  end;

Для клиентского приложения это:

   with udpClient do
      begin
        RemoteHost := '192.0.168.100'; //my local address
        RemotePort := '5002';
        Open();
        Active := True;
      end;

Проблема в том, что я ничего не получаю.Что я делаю не так, у меня нет стороннего программного обеспечения, которое может блокировать соединение.

Я не нашел подходящего примера использования этого компонента, поэтому я буду благодарен за любой источник вдохновения.

Ответы [ 2 ]

3 голосов
/ 05 февраля 2012

Сервер и клиент подключены к одному и тому же IP.

Обычно, если вы установите IP-адрес серверного приложения на 0.0.0.0, он будет привязан к любому доступному IP-адресу на данном порту, включая 127.0.0.1.

Затем клиент должен подключиться к одному из связанных IP-адресов.Вместо этого сервер прослушивал 127.0.0.1, а клиент подключался к 192.0.168.100.

Не дайте себя одурачить именем свойства LocalHost.«Локальный» здесь означает только то, что вы должны установить «локальный» IP, IP-адрес, назначенный локальному компьютеру, а не «удаленный» (другого компьютера), в то время как клиент, конечно, будет подключаться к «удаленному» IP,для сервера.

127.0.0.1 - хороший выбор, если и только если вы хотите, чтобы ваш сервер был доступен только для локального приложения, поскольку область IP-адресов ограничена одним и тем же компьютером.Если вы хотите сделать его доступным вне машины, вам необходимо привязать его к действительному IP-адресу.

Независимо от проблемы, вы можете использовать такие инструменты, как Wireshark или Microsoft Network Monitor очень полезно понять, что происходит.

1 голос
/ 06 февраля 2012

Вы привязываете сервер к 127.0.0.1, поэтому он будет принимать только те клиенты, которые подключаются к 127.0.0.1 специально. Ваш клиент подключается к 192.0.168.100 (возможно, вы имели в виду 192.168.0.100?).

Вам необходимо привязать сервер к IP-адресам, к которым клиенты фактически подключаются, или привязать его к 0.0.0.0, чтобы принимать подключения на любом локальном IP-адресе.

Несмотря на то, что UDP не подключен, это же правило применяется как к UDP, так и к TCP, поскольку оно применяется к низкоуровневому уровню IP-маршрутизации, который они оба используют.

...