我正在尝试使用GCDAsyncSocket测试服务器连接。
https://github.com/robbiehanson/CocoaAsyncSocket
我想连接到ip +端口并获取一条消息,无论它是否有效。
我现在到目前为止。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ //在应用程序启动后覆盖自定义点。
dispatch_queue_t mainQueue = dispatch_get_main_queue();
asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:mainQueue];
NSString *host = @"www.google.de";
uint16_t port = 21;
NSError *error = nil;
if(![asyncSocket connectToHost:host onPort:port error:&error])
{
NSLog(@"ERROR %@!!!", error);
}
else{
NSLog(@"NO ERROR %@!!!", error);
}
[asyncSocket writeData:@"DATA" withTimeout:3 tag:0];
return YES;
}
但我如何检查数据是否已写入?
if(![asyncSocket connectToHost:host onPort:port error:& error])
总是让我没有错误。答案 0 :(得分:0)
您必须实施socket:didWriteDataWithTag:
委托方法。
来自“GCDAsyncSocket.h”:
/**
* Called when a socket has completed writing the requested data. Not called if there is an error.
**/
- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag;
如果写入超时,则关闭连接并使用委托方法
- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err;
被召唤。