日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 【原創(chuàng)】NIO框架入門(三):iOS與MINA2、Netty4的跨平臺UDP雙向通信實(shí)戰(zhàn)

【原創(chuàng)】NIO框架入門(三):iOS與MINA2、Netty4的跨平臺UDP雙向通信實(shí)戰(zhàn)

來源:程序員人生   發(fā)布時(shí)間:2016-07-19 13:15:49 閱讀次數(shù):3288次

前言

本文將演示1個(gè)iOS客戶端程序,通過UDP協(xié)議與兩個(gè)典型的NIO框架服務(wù)端,實(shí)現(xiàn)跨平臺雙向通訊的完全Demo。服務(wù)端將分別用MINA2和Netty4進(jìn)行實(shí)現(xiàn),而通訊時(shí)服務(wù)端你只需選其1就好了。同時(shí)用MINA2和Netty4分別實(shí)現(xiàn)服務(wù)真?zhèn)€目的,是由于很多人都在糾結(jié)究竟是用MINA還是Netty來實(shí)現(xiàn)高并發(fā)的Java網(wǎng)絡(luò)通訊服務(wù)端,在此干脆兩個(gè)都實(shí)現(xiàn)了,就看你怎樣選擇了,夠吊吧。

NIO框架的流行,使得開發(fā)大并發(fā)、高性能的互聯(lián)網(wǎng)服務(wù)端成為可能。這其中最流行的不過就是MINA和Netty了,MINA目前的主要版本是MINA2、而Netty的主要版本是Netty3和Netty4(Netty5已被取消開發(fā)了:詳見此文),本次將使用MINA2和Netty4來實(shí)現(xiàn)服務(wù)真?zhèn)€代碼。

實(shí)際上,MINA2和Netty4的官方代碼里已有UDP通訊的Demo代碼,但客戶端其實(shí)不是基于當(dāng)今流行的移動端(主要是Android和iOS端)來實(shí)現(xiàn),本文將演示用iOS客戶端來實(shí)現(xiàn)這類跨平臺的雙向網(wǎng)絡(luò)通訊。演示Demo中,已解決跨平臺通訊時(shí)的亂碼、數(shù)據(jù)字節(jié)異常等問題,請繼續(xù)往下瀏覽。

《NIO框架入門》系列文章

有關(guān)MINA和Netty的入門文章很多,但多數(shù)都是復(fù)制、粘貼的未經(jīng)證實(shí)的來路不明內(nèi)容,對初次接觸的人來講,1個(gè)可以運(yùn)行且編碼規(guī)范的Demo,明顯要比各種“詳解”、“深入分析”之類的要來的直接和成心義。本系列入門文章正是基于此種斟酌而寫,雖無精深內(nèi)容,但最少希望對初次接觸MINA、Netty的人有所啟發(fā),起到拋磚引玉的作用。

本文是《NIO框架入門》系列文章中的第3篇,目錄以下:

  • 《NIO框架入門(1):服務(wù)端基于Netty4的UDP雙向通訊Demo演示》
  • 《NIO框架入門(2):服務(wù)端基于MINA2的UDP雙向通訊Demo演示》
  • 《NIO框架入門(3):iOS與MINA2、Netty4的跨平臺UDP雙向通訊實(shí)戰(zhàn)》(本文
  • 《NIO框架入門(4):Android與MINA2、Netty4的跨平臺UDP雙向通訊實(shí)戰(zhàn)》

本文亮點(diǎn) 

  • 客戶端基于iOS移動端平臺實(shí)現(xiàn):
    通常這類跨平臺的網(wǎng)絡(luò)通訊例子很難找,本文已解決跨平臺通訊的適配問題,是個(gè)難得的實(shí)踐入門示例;
  • 完全可履行源碼、方便學(xué)習(xí):
    完全的Demo源碼,合適新手直接運(yùn)行,便于學(xué)習(xí)和研究。
  • Demo中的代碼源自作者的開源工程,有實(shí)用價(jià)值:
    源碼均修改自作者的即時(shí)通訊開源工程 MobileIMSDK,只是為了方便學(xué)習(xí)理解而作了簡化,有1定的實(shí)用價(jià)值;

本文Demo的場景邏輯

本文要演示的Demo包括兩部份,iOS UDP客戶端和NIO框架實(shí)現(xiàn)的服務(wù)端(包括MINA2和Netty4實(shí)現(xiàn)兩個(gè)方案),客戶端每隔5秒向服務(wù)端發(fā)送消息,而服務(wù)端在收到消息后馬上回復(fù)1條消息給客戶端。

如上所述,服務(wù)端和客戶端都要實(shí)現(xiàn)消息的發(fā)送和接收,即實(shí)現(xiàn)跨平臺的雙向通訊。如果有心的話,略加改造,也就很容易實(shí)現(xiàn)1個(gè)簡陋的聊天程序了。下節(jié)將將給出真實(shí)的實(shí)現(xiàn)代碼。

iOS客戶端準(zhǔn)備工作

[Step 1] 去Github上下載最新的CocoaAsyncSocket:

CocoaAsyncSocket源碼地址:https://github.com/52im/CocoaAsyncSocket,以下圖:

補(bǔ)充說明:iOS里的網(wǎng)絡(luò)編程有多種途徑實(shí)現(xiàn)(具體請參看此文),本文選擇的是iOS里非常熱門的 CocoaAsyncSocket 工程,它對iOS原生網(wǎng)絡(luò)API做了進(jìn)1步封裝,使得開發(fā)者更容易使用。

[Step 2] 建好XCode工程,準(zhǔn)備開擼:

建好工程后把CocoaAsyncSocket的源碼援用進(jìn)來就好了,以下圖:

補(bǔ)充說明:如何新建1個(gè)XCode工程請自行百度之,依照系統(tǒng)默許的簡單建立1個(gè)就行了,本例不需要作額外配置和額外的系統(tǒng)庫援用。

iOS客戶端代碼實(shí)現(xiàn)

[1] 客戶端主類 ViewController.m:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//  Copyright (C) 2016 即時(shí)通訊網(wǎng)(52im.net)- 即時(shí)通訊開發(fā)者社區(qū).
//  All rights reserved.
//  Created by JackJiang on 16/06/22.
#import "ViewController.h"
#import "LocalUDPSocketProvider.h"
#import "LocalUDPDataSender.h"
#import "CharsetHelper.h"
#import "UDPUtils.h"
  
@interface ViewController ()
@end
  
@implementation ViewController
  
- (void)viewDidLoad
{
    [super viewDidLoad];
      
    // 初始化socket
    [[LocalUDPSocketProvider sharedInstance] initialLocalUDPSocket];
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 中国一级特黄毛片大片 | 亚洲自拍偷拍一区 | 午夜视频www | 99精品视频在线免费观看 | 99re在线视频免费观看 | 久久久久国产一级毛片高清网站 | 欧美一区二区视频在线观看 | 国产精品国产三级国产专播品爱网 | 亚洲精品乱码久久久久久蜜糖图片 | 亚洲天堂视频在线观看 | 精品一区二区三区蜜桃 | 国产馆av | 久久久精品一区 | 成人h动漫精品一区二区 | 免费嗨片网| 国产精品一区二区av日韩在线 | 成人精品一区二区户外勾搭野战 | 爱搞逼综合网 | 欧美黄色一区二区 | 综合久久久久久久久久 | 久久sp| 欧美日韩在线视频一区二区三区 | 日韩区一区二 | 色电影在线 | 99视频在线免费观看 | 在线免费观看黄色av | 精品不卡视频 | 亚洲精品乱码久久久久久金桔影视 | 九色最新网址 | 欧美成人精品一区二区 | 国产精品一区在线 | 亚洲国产成人精品女人久久久 | 国产精品久久久久久久9999 | av亚洲在线 | 麻豆精品一区 | 在线91观看 | 精品久久久一区二区 | 成人精品久久久 | 亚洲激情视频 | 91欧美精品成人综合在线观看 | 在线激情av |