Pārlūkot izejas kodu

1.尝试修复 断链报2后点击重连偶现闪退 (+[GCDAsyncSocket cfstreamThread:] (in ) (GCDAsyncSocket.m:7686))

huangxiaodong 1 gadu atpakaļ
vecāks
revīzija
77e02dd02f

+ 85 - 85
创维盒子/双子星云手机/connectDeviceManager/connectDeviceManager.m

@@ -31,9 +31,9 @@ WHPingDelegate
 
 @property (nonatomic, strong) NSTimer *connectCheckTimer;
 
-@property (nonatomic, strong) GCDAsyncSocket *socket;
-
-@property (nonatomic, strong) GCDAsyncSocket *serverSocket;
+//@property (nonatomic, strong) GCDAsyncSocket *socket;
+//
+//@property (nonatomic, strong) GCDAsyncSocket *serverSocket;
 
 @property (nonatomic, assign) BOOL sdnConnected;
 @property (nonatomic, assign) BOOL peerConnected;
@@ -218,12 +218,12 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     
     
     /// 作为服务端时,启动端口监听
-    self.serverSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
-    
-    if ([self.serverSocket acceptOnPort:0 error:NULL]) {
-        //self.serverPortLab.text = [NSString stringWithFormat: @"server port: %d", self.serverSocket.localPort];
-        NSLog(@"accept ok %d",self.serverSocket.localPort);
-    }
+//    self.serverSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
+//
+//    if ([self.serverSocket acceptOnPort:0 error:NULL]) {
+//        //self.serverPortLab.text = [NSString stringWithFormat: @"server port: %d", self.serverSocket.localPort];
+//        NSLog(@"accept ok %d",self.serverSocket.localPort);
+//    }
     
 }
 
@@ -256,7 +256,7 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     
 
     
-    self.socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
+    //self.socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
     
 
    
@@ -288,28 +288,28 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
 //        return;
 //    }
     
-    [self.socket writeData:[@"111" dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
+    //[self.socket writeData:[@"111" dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
     
 }
 
-- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket {
-    
-    NSLog(@"didAcceptNewSocket");
-    
-    
-    [newSocket setDelegate:self delegateQueue:dispatch_get_main_queue()];
-    
-    NSThread *revcThread = [[NSThread alloc] initWithBlock:^{
-        
-        while (true) {
-            [newSocket readDataWithTimeout:-1 tag:0];
-            [NSThread sleepForTimeInterval:0.1];
-        }
-    }];
-    
-    [revcThread start];
-    
-}
+//- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket {
+//
+//    NSLog(@"didAcceptNewSocket");
+//
+//
+//    [newSocket setDelegate:self delegateQueue:dispatch_get_main_queue()];
+//
+//    NSThread *revcThread = [[NSThread alloc] initWithBlock:^{
+//
+//        while (true) {
+//            [newSocket readDataWithTimeout:-1 tag:0];
+//            [NSThread sleepForTimeInterval:0.1];
+//        }
+//    }];
+//
+//    [revcThread start];
+//
+//}
 
 - (void)onProxyConnected:(NSString *)sdnId status:(int)status {
     
@@ -327,15 +327,15 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
         [cachesFileManager writeLogsWithMsg:@"onProxyConnected connectToHost"];
         
         /// 6. 等待连接成功回调,创建 TCP socket 连接 HttpService 的端口
-         NSError *error;
-        
-        NSString*log1 =  [[NSString alloc] initWithFormat:@"onProxyConnected connectToHost begin %ld", (long)self.tcpPort];
-        [cachesFileManager writeLogsWithMsg:log1];
-        
-        [self.socket connectToHost:@"127.0.0.1" onPort:self.tcpPort error:&error];
-        
-        NSString*log2 =  [[NSString alloc] initWithFormat:@"onProxyConnected connectToHost end %ld, self.socket = %@ error = %@", (long)self.tcpPort, self.socket, error];
-        [cachesFileManager writeLogsWithMsg:log2];
+//         NSError *error;
+//
+//        NSString*log1 =  [[NSString alloc] initWithFormat:@"onProxyConnected connectToHost begin %ld", (long)self.tcpPort];
+//        [cachesFileManager writeLogsWithMsg:log1];
+//
+//        [self.socket connectToHost:@"127.0.0.1" onPort:self.tcpPort error:&error];
+//
+//        NSString*log2 =  [[NSString alloc] initWithFormat:@"onProxyConnected connectToHost end %ld, self.socket = %@ error = %@", (long)self.tcpPort, self.socket, error];
+//        [cachesFileManager writeLogsWithMsg:log2];
         
         _curConnectDeviceState = DeviceConnectDeciceOk;
         _Pre_sdnId = self.DeviceThirdIdMod.data.sdnId;
@@ -413,53 +413,53 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     
 }
 
-- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {
-    
-    NSLog(@"didConnectToHost %d", port);
-    
-    NSThread *thread = [[NSThread alloc] initWithBlock:^{
-        while (true) {
-
-            [self.socket readDataWithTimeout:-1 tag:0];
-            [NSThread sleepForTimeInterval:0.1];
-
-        }
-    }];
-
-    [thread start];
-    
-    /// 7. Socket 连接成功后,通过 socket  发送, self.peerPortTF 为对端服务端口
-    //[sock writeData:[[NSString stringWithFormat:@"CONNECT 127.0.0.1:%@ HTTP/1.0\r\n\r\n", @"9100"] dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
-
-    NSLog(@"readDataToData");
-    
-    [cachesFileManager writeLogsWithMsg:@"didConnectToHost writeData"];
-}
-
-- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag
-{
-    NSLog(@"socket:%p didWriteDataWithTag:%ld", sock, tag);
-}
-
-- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
-    
-    
-    if (tag == 0) {
-        
-        NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
-        
-        /// 8. 收到包含 `HTTP/1.0 200`的字符串,则认为连接成功。可以正常给对端发消息了
-        if ([str containsString:@"HTTP/1.0 200"]) {
-            NSLog(@"Connected");
-            self.peerConnected = YES;
-//            self.connectBtn.enabled = YES;
-//            [self.connectBtn setTitle:@"断开连接" forState:UIControlStateNormal];
-        }
-        
-    }
-    
-    //self.revcLab.text = [NSString stringWithFormat:@"接收:%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]];
-}
+//- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {
+//    
+//    NSLog(@"didConnectToHost %d", port);
+//    
+//    NSThread *thread = [[NSThread alloc] initWithBlock:^{
+//        while (true) {
+//
+//            [self.socket readDataWithTimeout:-1 tag:0];
+//            [NSThread sleepForTimeInterval:0.1];
+//
+//        }
+//    }];
+//
+//    [thread start];
+//    
+//    /// 7. Socket 连接成功后,通过 socket  发送, self.peerPortTF 为对端服务端口
+//    //[sock writeData:[[NSString stringWithFormat:@"CONNECT 127.0.0.1:%@ HTTP/1.0\r\n\r\n", @"9100"] dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
+//
+//    NSLog(@"readDataToData");
+//    
+//    [cachesFileManager writeLogsWithMsg:@"didConnectToHost writeData"];
+//}
+//
+//- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag
+//{
+//    NSLog(@"socket:%p didWriteDataWithTag:%ld", sock, tag);
+//}
+//
+//- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
+//    
+//    
+//    if (tag == 0) {
+//        
+//        NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
+//        
+//        /// 8. 收到包含 `HTTP/1.0 200`的字符串,则认为连接成功。可以正常给对端发消息了
+//        if ([str containsString:@"HTTP/1.0 200"]) {
+//            NSLog(@"Connected");
+//            self.peerConnected = YES;
+////            self.connectBtn.enabled = YES;
+////            [self.connectBtn setTitle:@"断开连接" forState:UIControlStateNormal];
+//        }
+//        
+//    }
+//    
+//    //self.revcLab.text = [NSString stringWithFormat:@"接收:%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]];
+//}