ios - 将UDP请求发送到255.255.255.255并在iOS中等待回复

标签 ios sockets udp

我会从iPhone发送UDP广播,然后从所有打开了该端口的设备上监听具有超时时间的UDP响应。来自同一子网的自定义设备会回答吗? (如果我的是192.168.1.100,而自定义设备的IP是192.168.1.201)
如何使用“SmallSockets”或“cocoaAsyncSocket”?
使用什么函数来监听响应?
谢谢!

最佳答案

我决定使用cocoaAsyncSocket。
要广播,您可以使用:

[udpSocket sendData:datatosend toHost:@"192.168.1.113" port:port withTimeout:-1 tag:0];

接受:
- (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(id)filterContext
{
    NSString *msg = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

    NSString *host = nil;
    uint16_t port = 0;
    [GCDAsyncUdpSocket getHost:&host port:&port fromAddress:address];

    if (msg)
    {   
        NSLog(@"Message = %@, Adress = %@ %i",msg,host,port);
    }
    else
    {
        NSLog(@"Error converting received data into UTF-8 String");
    }
}

关于ios - 将UDP请求发送到255.255.255.255并在iOS中等待回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9716834/

相关文章:

ios - 如何快速调用另一个类的另一个方法?

ios - Firebase Google Sign In (iOS) - 从未调用过 GIDSignInUIDelegate 方法

linux - Unix IPC 套接字 : closing one end without reading from it

networking - 两国之间的私有(private)应用IP路由

android - 我应该为跨平台应用程序使用哪个 BLE Beacon?

ios - 无法使用类型为 'Float' 的参数列表调用类型为 '(Measurement<UnitLength>)' 的初始值设定项

c - 只有一次 write() 调用通过套接字连接发送数据

node.js - 使用 Socket.io 和 Redis 的 Node 集群问题

java - Java DatagramSocket 向 255.255.255.255 发送数据包失败

udp - 用于重定向 UDP 的 SOCAT 不起作用!