I don’t think there’s a way to make this work with Network framework. Okay, I already feared it :-)
Host A can’t set up an NWListener to accept new connections from host B2 because the fixed port is already in use. Yepp ... that exactly right.
My current workaround is to setup a connection (NWConnection) on an ephemeral system port (and tell this port to the other side).
And setup an additional NWListener on a fixed port (e.g. 40.000). So it's possible to receive data from B1 and B2.
But I think it's not really nice, it would be gracefully if I could solve this with one socket connection.
But many thanks for your feedback and help.
Post
Replies
Boosts
Views
Activity
Is that right? Yes, it's almost right.
Here it is in detail: host A sends data to host B1
host B1 sends data to host A
host B2 sends data to hast A
host A: iOS device
host B1 + B2: external devices (not iOS)
Is B1’s source port fixed? Yes it is. The ports for B1 + B2 are fixed.
The port on A is not fixed, but I have to tell this used port to the other machines.
My totally special requirement is to solve this issue with "only" one socket instance.
One instance for streaming data to B1 and receive data from B2 or B1.
I think with BSD sockets that is possible. Receive data from "any" and send data to specific machine.
I know that I could solve this issue with NWListener who listen on port xyz for data.
And send data after the connection handler setup is finished. But that would be 2 sockets in my opinion.
Or you have other ideas or suggestions?
Same issue here ... any hints for this problem?
OMG ... that sounds really great. You saved my day, many Thanks Matt and Quinn.
I don't know how many hours I've wasted to looking for this issue (without results).
I know that's possible with NWListener
but maybe it's also possible with NWConnection?
Yeaaa great!
That here works really well: connection?.currentPath?.localEndpoint
Thanks!
It is also possible to determine myself which port is used?
For example: I want to receive data on local port 51234
Same problem here. What is the solution or workaround for this issue.