Ваш брандмауэр вполне может блокировать порт, предполагая, что все ваше кодирование работает нормально - попробуйте открыть номер порта, на котором вы запускаете приложение (в параметрах брандмауэра клиент / серверных компьютеров).
Некоторая дополнительная информация, которая должна пролить некоторый свет на вещи
Сетевые устройства используют ARP (протокол разрешения адресов) и RARP (протокол обратного разрешения адресов) для сопоставления IP-адресов с канальным уровнем (MAC)адреса и обратно.Ваша сетевая карта (то, что подключается к вашему кабелю Ethernet) будет иметь уникальный MAC-адрес на обоих компьютерах.Для каждого ПК настроен IP-адрес, который используется протоколами более высокого уровня (протоколами сетевого уровня).
Компьютер A будет знать IP-адрес компьютера B (и он будет отличаться от IP-адреса компьютера), если ваша программаработает правильно.Когда компьютер A отправляет данные на компьютер B, предполагая, что они подключены напрямую и не проходят через маршрутизатор или что-то среднее, канальному уровню компьютера A потребуется преобразовать этот IP для компьютера B в MAC-адрес, который он может использовать.Это делается путем отправки широковещательной рассылки на все сетевые ПК в одной подсети с вопросом «Эй, это ваш IP !?»по существу.Тот, который имеет IP-адрес, совпадающий с транслируемым, да: «Да, это мой - и вот мой MAC-адрес, чтобы вы могли напрямую общаться со мной».
Итак, если два компьютера имеют один и тот же IP, все это идетк черту :) не делайте этого - дайте им уникальные IP-адреса и убедитесь, что компьютер A передает на тот же UDP-порт и IP-адрес, который также прослушивает компьютер B.Коммуникация работает в парах {IP, Port} - это как телефонный номер и код города.
Также ...
Как сказал EJP, UDP - это соединение без установления соединения.протокол - компьютер A просто отправляет на компьютер B и надеется, что компьютер B слушает правильно.Если компьютер B не прослушивал или находился в неправильном состоянии для обработки данных, данные будут просто отброшены и потеряны.Компьютер А не будет знать, что это произошло.Если вам нужна надежная связь, при которой он будет продолжать попытки, и вы будете уверены, что компьютер B получил данные компьютера А, то вместо этого используйте TCP - он выполняет трехстороннее рукопожатие для установления соединения и использует подтверждения, чтобы гарантировать повторную передачу данных, когда он недостичь другого конца.