Как подключить сервер и клиент, который находится за маршрутизатором, с помощью QUdpSocket?

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


person user1475966    schedule 16.07.2012    source источник


Ответы (1)


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

Но это также предполагает, что вы говорите о создании нового сокета от сервера к клиенту. Если сокет уже существует, вы просто говорите о нем, а маршрутизатор NAT с отслеживанием состояния отслеживает все, что ему нужно для передачи сообщения.

Если ни один из них не отвечает на ваш вопрос, вам нужно переформулировать его.

person San Jacinto    schedule 16.07.2012