CocoaAsyncSocket的tcp連接和實用

*AsyncSocket類是支持TCP的
*AsyncUdpSocket是支持UDP的
導(dǎo)入頭文件
import "GCDAsyncSocket.h" // for TCP
import "GCDAsyncUdpSocket.h" // for UDP

如果代理里的動作 是 耗時的動作各淀,就 不能 在主線程中調(diào)用蔬顾,要 在子線程中
如果代理里的動作 不 是耗時的動作所踊,就 能 在主線程中調(diào)用愿棋,不需要 在子線程中

//將handler設(shè)置成接收TCP信息的代理
        _chatSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

全局隊列(代理的方法是在子線程被調(diào)用)
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
主隊列(代理的方法會在主線程被調(diào)用)
dispatch_get_main_queue()

連接

#pragma mark - 連接服務(wù)器端口
- (void)connectServerHost {
    if (_connectStatus == SocketConnectStatus_UnConnected) {
        [_chatSocket connectToHost:ML_SocketHost onPort:5678 withTimeout:-1 error:nil];
    }
}

斷開

//設(shè)置默認(rèn)關(guān)閉讀取
    [_chatSocket setAutoDisconnectOnClosedReadStream:NO];
    [_chatSocket disconnect];

connect翁授、read、write崭倘、disconnect,GCDAsyncSocket
GCDAsyncSocketDelegate

寫發(fā)送消息:[_chatSocket writeData:sendingData withTimeout:ML_TCP_TimeoutInterval tag:type];

//連接成功調(diào)用
- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port
//斷開連接的時候調(diào)用
- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(nullable NSError *)err
#pragma mark - 發(fā)送消息超時
- (NSTimeInterval)socket:(GCDAsyncSocket *)sock shouldTimeoutWriteWithTag:(long)tag elapsed:(NSTimeInterval)elapsed bytesDone:(NSUInteger)length
//寫的回調(diào)
- (void)socket:(GCDAsyncSocket*)sock didWriteDataWithTag:(long)tag
//收到消息
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{

即時通訊的時候幾個注意的點:
*斷網(wǎng)重連的問題需要做一個網(wǎng)絡(luò)監(jiān)聽監(jiān)聽
*賬戶只能連接一次楼肪,不能同時存在多條線路,不然可能會導(dǎo)致對方收到的消息不知道是誰發(fā)的
*發(fā)送心跳這是必須的惹悄,不然服務(wù)器不知道你有沒有活著
*發(fā)送消息的格式按后臺的協(xié)議來春叫,nsdata格式傳輸

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泣港,隨后出現(xiàn)的幾起案子暂殖,更是在濱河造成了極大的恐慌,老刑警劉巖当纱,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呛每,死亡現(xiàn)場離奇詭異,居然都是意外死亡坡氯,警方通過查閱死者的電腦和手機晨横,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門洋腮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人手形,你說我怎么就攤上這事徐矩。” “怎么了叁幢?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坪稽。 經(jīng)常有香客問我曼玩,道長,這世上最難降的妖魔是什么窒百? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任黍判,我火速辦了婚禮,結(jié)果婚禮上篙梢,老公的妹妹穿的比我還像新娘顷帖。我一直安慰自己,他們只是感情好渤滞,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布贬墩。 她就那樣靜靜地躺著,像睡著了一般妄呕。 火紅的嫁衣襯著肌膚如雪陶舞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天绪励,我揣著相機與錄音肿孵,去河邊找鬼。 笑死疏魏,一個胖子當(dāng)著我的面吹牛停做,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播大莫,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼蛉腌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了只厘?” 一聲冷哼從身側(cè)響起眉抬,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懈凹,沒想到半個月后蜀变,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡介评,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年库北,在試婚紗的時候發(fā)現(xiàn)自己被綠了爬舰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡寒瓦,死狀恐怖情屹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杂腰,我是刑警寧澤垃你,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站喂很,受9級特大地震影響惜颇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜少辣,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一凌摄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧漓帅,春花似錦锨亏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捐迫,卻和暖如春劣摇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弓乙。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工末融, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人暇韧。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓勾习,卻偏偏與公主長得像,于是被迫代替她去往敵國和親懈玻。 傳聞我的和親對象是個殘疾皇子巧婶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容