2012-06-28 2 views
1

Возможно, это будет скорее сетевой вопрос, чем вопрос на C++, но у меня есть приложение iOS через UDP с сетевым ПК. Оба используют некоторые UDP классы сокетов, которые я написал в C. Вот мои симптомы:UDP Broadcast Traffic Not Received

  • Когда приложение PC посылает широковещательный трафик, Wireshark на самом ПК видит его, как это делает приложение IOS. Третий ПК в той же сети также видит пакеты через Wireshark.
  • Когда приложение iOS отправляет широковещательный трафик, ПК с приложением не даже видит пакеты в Wireshark. Однако третий компьютер делает.

Дополнительная информация:

  • ПК под вопросом работает Windows 7.
  • Он имеет Ethernet порт, который используется для камеры.
  • В нем есть беспроводная сетевая карта, которая соединена с сетью и также использует сложное небольшое приложение под названием Connectify для самостоятельного создания собственной беспроводной сети. Я пытаюсь отправить данные через сеть Connectify. Тем не менее, я попытался отправить данные по другой беспроводной сети, отличной от Connectify, и он все еще не работает (хотя третий компьютер в сети по-прежнему видит трафик). ОБНОВЛЕНИЕ Пренебрежение последним предложением. Это неверно. Если я меняю беспроводные сети, он работает.

Что я пробовал:

  • я первый предположил, что это проблема в таблице маршрутизации, поэтому я добавил постоянные маршруты с низкими метрическими номерами для любых записей, относящихся к этому интерфейсу. Таблица маршрутизации здесь:
 
IPv4 Route Table 
=========================================================================== 
Active Routes: 
Network Destination  Netmask   Gateway  Interface Metric 
      0.0.0.0   0.0.0.0  10.1.11.1  10.1.11.169  25 
     10.1.11.0 255.255.255.0   On-link  10.1.11.169 281 
     10.1.11.169 255.255.255.255   On-link  10.1.11.169 281 
     10.1.11.255 255.255.255.255   On-link  10.1.11.169 281 
     127.0.0.0  255.0.0.0   On-link   127.0.0.1 306 
     127.0.0.1 255.255.255.255   On-link   127.0.0.1 306 
    127.255.255.255 255.255.255.255   On-link   127.0.0.1 306 
    192.168.190.0 255.255.255.0   On-link  192.168.190.1  6 
    192.168.190.1 255.255.255.255   On-link  192.168.190.1  6 
    192.168.190.255 255.255.255.255   On-link  192.168.190.1  6 
     224.0.0.0  240.0.0.0   On-link   127.0.0.1 306 
     224.0.0.0  240.0.0.0   On-link  10.1.11.169 281 
     224.0.0.0  240.0.0.0   On-link  192.168.190.1 257 
    255.255.255.255 255.255.255.255   On-link  192.168.190.1  6 
=========================================================================== 
Persistent Routes: 
    Network Address   Netmask Gateway Address Metric 
    255.255.255.255 255.255.255.255 192.168.190.1  5 
    192.168.190.0 255.255.255.0 192.168.190.1  5 
    192.168.190.1 255.255.255.255 192.168.190.1  5 
    192.168.190.255 255.255.255.255 192.168.190.1  5 
=========================================================================== 
  • я тогда предположил, что там было что-то странное происходит с этой программой Connectify, поэтому я попытался вещание через 10.1.11 сети (после отмены моих постоянных маршрутов). Как отмечено выше, это удается.

Любые идеи? Я в тупике. Я полагаю, что это может быть ограничение сетевой карты, но почему тогда можно увидеть, как выходят его собственные широковещательные пакеты? Может ли быть, что размеры пакетов, выводимые iOS, слишком велики для ПК-адаптера?

+0

Если PC2 видит широковещательные передачи UDP с устройства iOS, но не PC1, проблема, похоже, будет в PC2. Очевидно, что устройство iOS генерирует действительный UDP-трафик и, следовательно, это, вероятно, не проблема сетевой библиотеки). Наиболее вероятным виновником является Connectify. В этой ситуации повторное рассмотрение вашего вопроса или предоставление советов Connectify советов может показаться наиболее разумной задачей. – Rook

+0

просто мысль ... у вас есть брандмауэр на ПК? (иногда в комплекте с антивирусом). Брандмауэры, как правило, подозрительно относятся к внешнему бродягу. Попробуйте отключить его, если у вас есть. – Offirmo

ответ

0

Ваша проблема, похоже, связана с подключением, но не обязательно.

Я хотел бы предложить:

  • быть осторожными ограничений вещания, см UDP broadcast packets across subnets
  • проверка, если получающий приложение и отправка приложение оба на одной и той же подсети
  • проверить настройки брандмауэра, если у вас есть какие-либо: http://support.connectify.me/entries/20313068-firewall-security-settings (или временно отключить его, чтобы проверить)

Просто мысли.

Смежные вопросы