Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在Objective-C中侦听网络端口_Iphone_Objective C_Xcode_Port_Listen - Fatal编程技术网

Iphone 如何在Objective-C中侦听网络端口

Iphone 如何在Objective-C中侦听网络端口,iphone,objective-c,xcode,port,listen,Iphone,Objective C,Xcode,Port,Listen,我正在尝试为iPhone制作一个可以监听特定网络端口流量的应用程序 我网络上的服务器正在特定端口上发送消息(服务器处理的设备的不同状态消息) 我的问题是,当我创建一个线程和makePairWithSocket时,我会阻止其他想要向服务器发送消息的人的端口,因此我只想侦听指定端口上的流量,然后检查特定的Herader,然后使用这些消息。 我知道如何使用写流和读流与服务器建立连接和对话,但随后我创建了PairWithSocket并阻止网络上所有其他设备的端口 有人对如何在不与服务器配对的情况下监听O

我正在尝试为iPhone制作一个可以监听特定网络端口流量的应用程序

我网络上的服务器正在特定端口上发送消息(服务器处理的设备的不同状态消息)

我的问题是,当我创建一个线程和makePairWithSocket时,我会阻止其他想要向服务器发送消息的人的端口,因此我只想侦听指定端口上的流量,然后检查特定的Herader,然后使用这些消息。 我知道如何使用写流和读流与服务器建立连接和对话,但随后我创建了PairWithSocket并阻止网络上所有其他设备的端口

有人对如何在不与服务器配对的情况下监听Objective-C中的端口有什么建议吗

提前谢谢
Daniel

我认为这需要远低于socket API级别的网络支持,可能是在硬件驱动程序级别,假设数据包甚至被路由到您的设备。

请查看CocoaAsyncSocket。它为您提供了一种良好的结构化方式(与代理一起)来发送和接收数据。。。也可以使用多个客户端。文档很好


编辑:查看无状态UDP连接的AsyncUdpSocket类。

我认为他想捕获UDP广播数据包,这可以在套接字API级别完成。服务器将向发送问题的IP发送响应,因此我想配对并发送一个问题,然后关闭连接并等待答复。但是如果我保持配对,服务器将不会发送答案,因为我阻塞了端口,它会认为我将发送更多数据。你能在没有连接的情况下接受“呼叫”吗?我可以在服务器上硬编码iPhone的IP,这样当状态发生变化时它会发送到该IP。但是我如何在不配对和阻止端口的情况下接受连接呢?我以前看过该项目站点,但是我真的找不到任何不连接到服务器和阻止端口就可以做到这一点的东西。关于如何使用AsyncSocket解决这个问题,您有什么想法吗?找到这个:-acceptOnAddress:port:error:我要创建什么来使用它?如果我有一个线程,它是如何工作的-acceptOnAddress:port:error:我想这就是我想要的,在指定端口上接受来自特定主机的连接,但是我应该如何实现它以便在后台侦听它?服务器可以在单个端口上接受多个连接。服务器的AsyncSocketDelegate具有接收方法“-(void)onSocket:(AsyncSocket*)sock didReadData:(NSData*)data with tag:(long)tag;”,其中“sock”参数属于发送数据的客户端。您可以存储“sock”参数并使用[sock writeData:]将数据发送到此特定客户端。因此端口没有被阻塞。您不需要断开任何连接。请看一下CococaAsyncSocket提供的示例。在哪里可以找到这些示例?AsyncSocket*as=[[AsyncSocket alloc]initWithDelegate:self];n错误*e;if([作为接受接口:IP端口:端口错误:&e])NSLog(@“成功”);else NSLog(@“Fail:%@”,e);当我使用上面的代码时,我得到的是一般的CFsocket错误,这不是有效的吗?我建立了连接并设置了一个要监听的套接字,还没有设置delagets,因为我想让连接正常工作。