CocoaAsyncSocket 學(xué)習(xí) (二)

CocoaAsyncSocket 學(xué)習(xí) (一)

實(shí)現(xiàn)自動(dòng)邏輯回復(fù)功能

  • 在 監(jiān)聽接入客戶端的方法中 監(jiān)聽到接入后 寫入客戶端數(shù)據(jù)
- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket {
    NSLog(@"服務(wù)端  %@", sock);
    NSLog(@"客戶端  %@", newSocket);
    [self.clientSockets addObject:newSocket];
    
    
    NSMutableString *mutableStr = [NSMutableString string];
    [mutableStr appendString:@"歡迎來到10086在線服務(wù),請輸入下面的數(shù)字選擇服務(wù)\n"];
    [mutableStr appendString:@"[0]在線充值\n"];
    [mutableStr appendString:@"[1]在線投訴\n"];
    [mutableStr appendString:@"[2]優(yōu)惠信息\n"];
    [mutableStr appendString:@"[3]special services\n"];
    
    [newSocket writeData:[mutableStr dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
    
    // 監(jiān)聽客戶端是否寫入數(shù)據(jù)
    // timeOut: -1 暫時(shí)不需要 超時(shí)時(shí)間  tag暫時(shí)不需要 傳0
    [newSocket readDataWithTimeout:-1 tag:0];
}
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
    
    NSLog(@"客戶端  %@", sock);
    NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"data --- %@", dataStr);
    
    
    NSInteger index = [dataStr integerValue];
    NSString *responseStr = nil;
    switch (index) {
        case 0:
            responseStr = @"充值服務(wù)暫停中...\n";
            break;
        case 1:
            responseStr = @"投訴服務(wù)暫停中...\n";
            break;
        case 2:
            responseStr = @"優(yōu)惠信息沒有...\n";
            break;
        case 3:
            responseStr = @"SB 怎么可能有特殊服務(wù)...\n";
            break;
        case 4:
            responseStr = @"退出成功...\n";
            break; 
      
        default:
            responseStr = @"指令無效...\n";
            break;
    }
    
#####退出連接的話  將客戶端socket 從數(shù)組中移除即可
      if (index == 4) {
        [self.clientSockets removeObject:sock];
    }
    // 服務(wù)端接收到客戶端發(fā)送的數(shù)據(jù)之后  返回?cái)?shù)據(jù)給 客戶端
    // 我們將接受到的數(shù)據(jù)返回回去
    [sock writeData:[responseStr dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
    
    [sock readDataWithTimeout:-1 tag:0];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評論 25 709
  • 臨風(fēng)回憶往事,像是協(xié)奏曲 命運(yùn)是指揮,世界是樂隊(duì),自己是獨(dú)奏者 聽眾,自始至終終究此一個(gè)。 ——木心《晚來欲雪。十...
    白駒意閱讀 1,121評論 0 1
  • 這本書主要是講消化系統(tǒng)方面的內(nèi)容,這些癥狀的發(fā)生是否一定有背后的原因。 習(xí)慣 生活節(jié)奏的加快,飲食結(jié)構(gòu)的變化,就容...
    一只喜歡營養(yǎng)的兔子閱讀 164評論 0 0
  • 今天早上因?yàn)橼s早班,開車開得比較快,由于前面是一排的學(xué)生,所以摁了喇叭后,學(xué)生散開,我一下子沒注意到地上正中央...
    亦或然閱讀 363評論 0 0

友情鏈接更多精彩內(nèi)容