有了之前UDP连接的成功我以为TCP连接就直接照搬就好了,结果在接收报文的地方被坑了
TCP整体比UDP复杂点点点,毕竟人家的报文长度有20个字节。
总体思路就是
1.先检查有没有连接,如果没有创建,有的话直接readData
2.新创立的连接调用连接成功的delegate方法,在其中调用readdata(就是这里被坑了,死都读不到数据)
3.然后调用received data 的delegate方法
-(void)socketTCPCloudConnection{
if(self.cloudTcpSocket != nil){
[self.cloudTcpSocket readDataWithTimeout:-1 tag:0];
}else{
self.cloudTcpSocket = [[AsyncSocket alloc]initWithDelegate:self];
NSError *error;
if(![self.cloudTcpSocket connectToHost:CLOUDIP
onPort:CLOUDPORT
withTimeout:-1
error:&error]){
NSLog(@"fail to connect to ip : %@, port:%d",CLOUDIP,CLOUDPORT);
}else{
NSLog(@"connect successfully");
}
}