一定要在连接成功后,加上 [_socket readDataWithTimeout: -1 tag: 0]; 位置可以如下二选一
1、如果是自定义了连接方法,如下。
-(void)connectHost:(NSString *)host{
if (!_socket) {
//self.socket = [[AsyncSocket alloc] initWithDelegate:self];
_socket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
}
NSError *err = nil;
BOOL isConnected = [_socket isConnected];
NSLog(@"isConnected=%@",isConnected?@"YES":@"NO");
if (isConnected==NO){
if(![_socket connectToHost:host onPort:SOCKET_PORT error:&err])
{
NSLog(@"Connect Error: %@", err);
}else{
NSLog(@"Connect success!");
[_socket readDataWithTimeout: -1 tag: 0];
}
}
2. 实现代理 : <GCDAsyncSocketDelegate> 如下方法
-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
{
[sock readDataWithTimeout:-1 tag:0];
}