Я работаю над надежной программой обмена файлами на основе UDP. Программа состоит из 2 частей.
Сервер и Клиент.
Любой клиент может запросить загрузку любого файла. Когда это происходит, сервер должен уведомить клиента, которому принадлежит загружаемый файл, о том, что кто-то хочет загрузить этот файл. Затем сервер должен как-то указать клиенту, который пытается загрузить файл, IP-адрес и порт клиента, который имеет файл.
Программа почти завершена. в том числе механизм ACKing. Но у меня есть проблема, которую я не мог решить последние пару часов. если я запускаю клиентскую часть программы на том же компьютере, что и мой сервер, и открываю другой экземпляр клиента на другом компьютере, все работает отлично. Однако если я открою сервер на одной машине и открою клиентские программы на разных машинах, я не смогу отправить файл с одного клиента на другой. Я не знаю, что могло вызвать эту проблему. Я был бы рад выслать вам решение, если вы дадите мне свой адрес электронной почты. Я не хочу размещать здесь тысячи строк кода.
EDIT:
ХОРОШО. Я перепробовал все возможные сценарии и до сих пор не нашел решения. Я начал думать о том, что, возможно, проблема не связана с программой, может быть, это связано с моими сетевыми подключениями.
Компьютер, который я использую в качестве сервера, напрямую подключен к маршрутизатору с помощью Ethernet, но другие компьютеры используют беспроводное соединение. Я не уверен, если это имеет значение? Я также попытался запустить серверное приложение на одном из моих беспроводных компьютеров, но другие компьютеры не смогли подключиться к нему. Похоже, проблема связана с беспроводной сетью.