草庐IT

gcdAsyncSocket

全部标签

ios - 连接后立即断开与服务器的连接

我已经使用GCDAsyncsocket库编写了一个单例类,以使用Bonjour与具有相同服务的任何其他设备建立连接。在一台设备上,我正在使用它的方法“startPublishing”使其成为主机(服务器),从另一台设备(客户端)上的应用程序我调用“StartBrowsing"以找出网络中可用的设备。当用户选择该网络中的任何服务时,我将调用方法“initConnectionWithService”,该方法通过解析要连接的NetService地址来启动连接流。BonjourUtilClass.h@interfaceBonjourUtilClass:NSObject{NSNetService

ios - [NSDate date] 在多个设备中的不同结果

首先,我不得不说我在日期和时间设置中设置了自动设置,并且每台设备的时区都相同。所以我使用[NSDatedate]获取以毫秒为单位的时间戳,然后编码为NSData并发送到另一台设备。在接收器上,数据正在被解码并减去新的[NSDatedate]。这样我就可以获得发送和接收消息所需的总时间。我认为这是因为当发送方是iPhone4iOS6并且接收方是iPhone5iOS7时,接收方的时间戳比发送方早。我不知道为什么?也许[NSDatadate]不是那种操作最可靠的类?我使用GCDAsyncUdpSocket发送/接收UDP。代码发送者NSData*data2=[selfcreateRandom

ios - GCDAsyncSocket 服务器仅在第一次接收数据

当我按下发送按钮时,客户端每次都发送消息,但服务器只在第一次接收消息。服务器有什么问题服务器:-(void)viewDidLoad{[superviewDidLoad];asyncSocket=[[GCDAsyncSocketalloc]initWithDelegate:selfdelegateQueue:dispatch_get_main_queue()];NSError*err=nil;if(![asyncSocketacceptOnPort:10000error:&err]){NSLog(@"ErrorinacceptOnPort:error:->%@",err);}}-(voi

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

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

objective-c - 使用 GCDAyncSocket 将任意信息与套接字相关联

我已经使用GCDAsyncSocket创建了一个简单的客户端服务器应用程序。主机通过bonjour广播其服务,客户端连接到它,然后每个客户端向主机发送特定信息,在主机完成请求后,它现在应该能够将每个请求发送到其对应的客户端。这里,当客户端在收到完成的请求并再次连接之前断开连接(可能重新启动WiFi)时,其连接的主机和端口可能会发生变化。所以对于反硝化客户端,我想将已连接客户端的列表存储在字典中key:vendorID(specifictoeachclientandcan'tchange)value:connectedhostandport(gcdAsyncSocketinstance)

objective-c - GCDAsyncSocket 错误

如果我想编译我的程序,我会遇到一些错误,我不知道发生了什么我想在我的iPad上编译它,我想在我的iPad上构建一个TCP服务器来从客户端读取数据。我是IOS编程的初学者。感谢帮助!西蒙 最佳答案 我想你没有添加Securityframework.到您的项目。尝试添加并再次运行。要添加安全框架转到目标-->构建阶段-->将二进制文件与库链接,然后单击(+)符号并添加框架。 关于objective-c-GCDAsyncSocket错误,我们在StackOverflow上找到一个类似的问题:

sockets - Swift 中的 TCP 套接字

我正在尝试使用GCDAsyncSocket快速编写一个TCP套接字客户端,但我遇到了很多问题。在我的代码中,我有一个NSTextField(称为框),这是我的代码:进口cocoaclassAppDelegate:NSObject,NSApplicationDelegate{@IBOutletweakvarwindow:NSWindow!@IBOutletweakvarbox:NSTextField!letbsocket=GCDAsyncSocket(delegate:AppDelegate.self,delegateQueue:dispatch_get_main_queue())fun

ios - GCDAsyncSocket 在传输数据时更改数据

我正在制作一款多人iOS游戏,遇到了以下问题:我发送了一个字典,其中包含一组自定义对象。这些自定义对象符合NSCoding。我将字典转换为NSData,如下所示:NSData*data=[NSKeyedArchiverarchivedDataWithRootObject:packet];然后发送[asyncSocketwriteData:datawithTimeout:-1tag:tag];接收[sockreadDataWithTimeout:-1tag:tag];并尝试解压NSDictionary*dict=[NSKeyedUnarchiverunarchiveObjectWithD

ios - 从 CocoaAsyncSocket 开始

我一直在寻找通过TCP将文件(在iphone上录制的小声音)发送到服务器以及从服务器发送到其他设备的方法。看起来最简单的方法是使用CocoaAsyncSocket项目。(这是真的吗?)然而,虽然我可以找到很多关于如何使用它的示例,但我找不到关于如何安装它的单一解释。我是iOS和Xcode的新手,对此很迷茫。有人可以向我解释如何获得图书馆吗?(我知道如何将库添加到我的项目中,但是我只能通过gitHub找到.m文件的下载)谢谢 最佳答案 该库带有一个头文件(AsyncSocket.h或GCDAsyncSocket.h)和一个实现文件(A

objective-c - 使用GCDASyncSocket时如何分离数据包

谁能帮帮我?我使用GCDAsyncSocket通过TCP协议(protocol)在两个设备之间密集交换数据。我发送这样的数据:NSMutableDictionary*packet=[[[NSMutableDictionaryalloc]init]autorelease];[packetsetObject:[NSNumbernumberWithInt:MultiPlayerTypeInfoNextRoundConfirm]forKey:@"type_info"];[packetsetObject:[NSNumbernumberWithBool:YES]forKey:@"connectio