Post not yet marked as solved
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 not yet marked as solved
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?
Post not yet marked as solved
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
Post not yet marked as solved
Same problem here. What is the solution or workaround for this issue.
Post not yet marked as solved
It would be great, if someone from Apple would say something about that.
Post not yet marked as solved
Thanks a lot for your reply.Now I want to playback streaming audio on my device. I receive the audio data from network and want to playback it on my device. I wanted to try it with AVAudioPlayer, but I think the AVAudioPlayer doesn't support the streaming use case. I have to use the AVPlayer.It's possible to use the AVPlayer with audio chunks? I found only the use case with AVPlayer and an URL as input.
Post not yet marked as solved
Nobody here who can help me and give me short hint?
"It was introduced in WWDC 2014 Session 712 Writing Energy Efficient Code, Part 2"Sorry, but this link doesn't work."The announcement was in WWDC 2019 Session 707 Advances in App Background Execution but you can find more info in this thread."Thanks a lot!
Okay, many thanks for answers."However, it doesn’t take much to open the network up enough for devices to open the outgoing connection required to make push notifications work, and that’s by far the easier best to this problem."Could you say me which protocols or ports I need for this use case?Exist for PushKit a WWDC video or something else?
Many thanks for your fast reply!"Modern VoIP apps have migrated to PushKit, and that’s what I’d recommend you do here."Is it possible to use PushKit in closed networks? If not, what is an alternative for PushKit?