Как настроить порт отправителя в NWConnection для UDP-трансляции - PullRequest
0 голосов
/ 06 февраля 2020

У меня небольшой ruby сервер, и я хотел бы отправить ему UDP-сообщение с приложением iOS. Он работает хорошо, но (отправитель) iOS порт каждый раз является случайным портом, и я бы хотел, чтобы он был фиксированным.

Вот код iOS для отправки сообщения:

guard let data = "Hello".data(using: .utf8) else { return }
let queue = DispatchQueue(label: "connection")
let params = NWParameters.udp
client = NWConnection(host: NWEndpoint.Host("255.255.255.255"), port: NWEndpoint.Port(integerLiteral: 49000), using: params)
client?.start(queue: queue)
client?.send(content: data, completion: .idempotent)

А вот вывод сервера Ruby, который показывает отправителя и сообщение:

AF_INET
51269 <----------- Port is not 49001
192.168.1.241
192.168.1.241
48656c6c6f
AF_INET
60451 <----------- Port is not 49001
192.168.1.241
192.168.1.241
48656c6c6f

Я попытался добавить этот параметр, чтобы установить сокет отправителя с фиксированным значением: 49001.

params.requiredLocalEndpoint = NWEndpoint.hostPort(host: NWEndpoint.Host("0.0.0.0"), port: 49001)

Но это тоже не работает. Любая идея?

Спасибо за вашу помощь, документация по инфраструктуре сети очень плохая.

1 Ответ

0 голосов
/ 06 февраля 2020

Работает хорошо с реальным iOS устройством, не на симуляторе.

...