jjzjj

asyncSocket

全部标签

ios - GCDAsyncUdpSocket, "Cannot bind socket more than once"

我正在使用GCDAsyncUdpSocket在iphone和远程udp服务器之间获取udp广播。我在特定端口上向“255.255.255.255”广播地址发送一个小的“hello”。然后服务器回复,允许我发现它的ip地址。一切正常,尤其是使用模拟器,除了如果我在iphone上运行一次,当我尝试停止应用程序并在之后立即运行它时,出现“无法多次绑定(bind)套接字”错误。当我在xcode中单击停止或在IOS中终止应用程序时,会发生这种情况。这是我的代码示例:#import"GCDAsyncUdpSocket.h"-(void)viewDidLoad{[superviewDidLoad];

objective-c - GCDAsyncUdpSocket 不为 iOS 编译

我使用这个库:https://github.com/robbiehanson/CocoaAsyncSocketiPhone上有TCP的示例,但没有UDP的示例。我认为一切都应该是一样的。这是我的代码:#import@classGCDAsyncUdpSocket;@interfaceThirdViewController:UIViewController{GCDAsyncUdpSocket*udpSocket;}.m:#import"ThirdViewController.h"#import"DDLog.h"#import"DDTTYLogger.h"#import"GCDAsyncUd

iphone - 通过 wifi 在 iOS 设备之间同步核心数据?

我想通过wifi在iOS设备之间同步CoreData。我知道如何与ASyncSockets建立连接,但我不确定下一步-同步核心数据。我知道用于在iOS和Mac之间同步的ZSync项目,但我想知道是否有人知道是否可以在iOS设备之间做同样的事情。 最佳答案 您可以通过多种方式解决这个问题,但我会考虑以下两种方式之一:获取NSManagedObject子类的属性,将它们转换为NSData,并使用AsyncSocket传输它们。然后,当接收应用程序收到所有属性时,它会在自己的数据库中重新创建对象。一次传输您的整个数据库。无需重新创建任何内

ios - ios 的 Icecast 源码客户端

我一直在尝试为ios的icecast创建一个源客户端。我已经能够使用asyncsocket连接到套接字。我还可以将数据写入服务器。icecast配置是针对mp3格式完成的。但是写入服务器的mp3文件已损坏。我提供了一些代码片段。标题:NSString*string=@"SOURCE/syncHTTP/1.0\r\n""Authorization:Basicc291cmNlOmhhY2ttZQ==\r\n""User-Agent:butt-0.1.12\r\n""User-Agent:butt-0.1.12\r\n""content-type:audio/mpeg\r\n""ice-na

objective-c - 将 NSData 转换为 NSString 时为空结果

我在转换时遇到问题NSData至NSString.我正在使用UTF8Enconding但结果是null!!这是我收到的数据它必须是192.168.1.11或192.168.1.17.这是我用来转换的方法:NSString*ipAddress=[[NSStringalloc]initWithData:addressencoding:NSUTF8StringEncoding];有什么问题吗?!顺便说一句,这是didreceivedataGCDAsyncUdpSocket代表图书馆。 最佳答案 来自GCDAsyncUdpSocket的文档

c++ - 取消后无错误地调用 boost::asio 异步处理程序

我的代码在单个线程中使用boost::asio和io_service来执行各种套接字操作。所有操作都是异步的,每个处理程序都依赖于boost::system::error_code(特别是boost::asio::error::operation_aborted)来确定操作。在我更改逻辑以建立多个并发连接并选择最快的连接之​​前,它一直运行良好。也就是说,当第一个async_read_some处理程序触发时,我取消其他套接字(关闭、关闭-一切)并继续当前的套接字。在95%的情况下,调用其他套接字的读取处理程序时会出现operation_aborted错误。然而有时,这些读取处理程序被调

iphone - iOS SDK : How can I check if a port is open?

我还没有找到任何关于如何检查端口是否打开的信息。我试图用AsyncSocket类来实现它,但它总是返回TRUE,尽管我拒绝了与服务器上该端口的所有连接。此外,我尝试使用AsyncSocket的isConnected方法,但它总是返回FALSE。到目前为止我的代码://Initsocketsocket=[[AsyncSocketalloc]initWithDelegate:self];//resultsonTRUEalways!NSLog(@"Ready");NSError*err=nil;if(![socketconnectToHost:@"10.1.2.40"onPort:25err

iOS didAcceptNewSocket 预期不同的端口号

我正在使用AsyncSocket并监听特定端口。我正确地得到了一个带有新套接字的didAcceptNewSocket委托(delegate)回调。当我为新套接字调用本地时,它与我的监听套接字具有相同的端口号。我希望有一个不同的端口。-(void)createListenSocket{NSError*error;listenSocket=[[AsyncSocketalloc]initWithDelegate:self];[listenSocketacceptOnPort:MY_PORT_NUMBERerror:&error];}和-(void)onSocket:(AsyncSocket*

ios - iOS/Objective-C 中的 TCP 客户端 - 检查开放端口

我在SO上搜索了一些关于AsyncSocket的问题,但没有任何答案。我觉得我想做的事情很简单,所以它会很糟糕......我已经尝试过非GCD版本,但也没有任何乐趣。我需要能够扫描一系列主机以查找特定的开放TCP端口。不幸的是,我无法控制服务器代码让它使用Bonjour宣布自己。所以,我只能进行强力扫描,并尝试连接到那个端口——如果我收到“连接被拒绝”,那么我知道要继续……所有这些让我想到了AsyncSocket,我认为它是完成这项工作的正确工具。使用作者的示例,我有一个基本的工作示例,但不完全是。就像他的示例一样,我只是为了简单起见而使用主队列。问题是,关于是否调用委托(delega

sockets - Libuv - 单个连接上的多个 TCP 请求

使用Libuv,我实现了一个调用另一个TCP服务器B的TCP服务器A。随着服务器A不断收到请求,我使用从A到B建立的单个TCP连接向服务器B发送请求。鉴于Libuv是异步的和面向回调的,我如何区分服务器B的响应?即如何将正确的结果发送回服务器A的客户端?文档说uv_read_cb回调将被调用多次。我如何知道uv_read_cb是针对哪个原始请求调用的? 最佳答案 TCP是基于流的,而不是基于消息的——您发送的不是单独的消息,而是未区分的数据流。所以简而言之,您尝试做的事情总是很棘手,处理完全取决于您。您需要在TCP之上创建自己的协议