- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
[self.asyncSocket setDelegate:self];
NSString *requestString = @"MESSAGE_TO_SEND";
NSError *error = nil;
if (![self.asyncSocket connectToHost:HOST_IP onPort:PORT error:&error]) {
NSLog(@"Error in connectToHost: %@", error);
}
NSData *requestData = [requestString dataUsingEncoding:NSUTF8StringEncoding];
[self.asyncSocket writeData:requestData withTimeout:-1 tag:0];
NSData *requestData2 = [requestString dataUsingEncoding:NSUTF8StringEncoding];
[self.asyncSocket writeData:requestData2 withTimeout:-1 tag:1];
}
#pragma mark - GCDAsyncSocket Delegate
-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {
NSLog(@"%s host: %@, port: %u", __PRETTY_FUNCTION__, host, port);
[self.asyncSocket readDataWithTimeout:-1 tag:0];
}
-(void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err{
NSLog(@"%s, err: %@", __PRETTY_FUNCTION__, err);
}
-(void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag {
NSLog(@"%s request send for %li", __PRETTY_FUNCTION__, tag);
//[sock readDataToData:[GCDAsyncSocket LFData] withTimeout:30 tag:tag];
[sock readDataWithTimeout:30 tag:0];
}
-(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
[sock readDataWithTimeout:-1 tag:0];
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%s request send for %li, dataString = %@", __PRETTY_FUNCTION__, tag, dataString);
}
- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket
{
NSLog(@"Accepted new socket from %@:%hu", [newSocket connectedHost], [newSocket connectedPort]);
self.asyncSocket = newSocket;
NSString *welcomMessage = @"Hello from the server\r\n";
[self.asyncSocket writeData:[welcomMessage dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:1];
[self.asyncSocket readDataWithTimeout:-1 tag:0];
}
-(void)socket:(GCDAsyncSocket *)sock didReadPartialDataOfLength:(NSUInteger)partialLength tag:(long)tag {
NSLog(@"%s request send for %li", __PRETTY_FUNCTION__, tag);
}
I am getting below error after sending first request.
-[ViewController socketDidDisconnect:withError:], err: Error Domain=GCDAsyncSocketErrorDomain Code=8 "Error creating CFStreams" UserInfo=0x16655060 {NSLocalizedDescription=Error creating CFStreams}
Thanks in advance.