iPhone UDP broadcast and response

前端 未结 2 1470
自闭症患者
自闭症患者 2021-02-04 15:12

I need to send out a UDP broadcast from an iPhone, and then listen for a UDP response with a timeout period. I have found Apple\'s UDPEcho example but I am not sure if it\'s wh

相关标签:
2条回答
  • 2021-02-04 16:12

    You can use cocoaAsyncSocket which is easier to use than apple native classes.
    It support UDP with AsyncUdpSocket class.

    AsyncUdpSocket is a UDP/IP socket networking library that wraps CFSocket. It works almost exactly like the TCP version, but is designed specifically for UDP. This includes queued non-blocking send/receive operations, full delegate support, run-loop based, self-contained class, and support for IPv4 and IPv6

    0 讨论(0)
  • 2021-02-04 16:13

    I'd put 'recvfrom' on another thread using grand central dispatch, like this:

    // Use grand central dispatch so we don't block the interface
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
    
        recvfrom(...) // Receive with a 2s timeout
    
        dispatch_async(dispatch_get_main_queue(), ^{ // The main thread stuff goes here
    
            if (received ok) {
                [self receivedData:some data];
            } else {
                [self timedOut];
            }
    
        });
    });
    
    0 讨论(0)
提交回复
热议问题