多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 【原創】NIO框架入門(三):iOS與MINA2、Netty4的跨平臺UDP雙向通信實戰

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

來源:程序員人生   發布時間:2016-07-19 13:15:49 閱讀次數:3268次

前言

本文將演示1個iOS客戶端程序,通過UDP協議與兩個典型的NIO框架服務端,實現跨平臺雙向通訊的完全Demo。服務端將分別用MINA2和Netty4進行實現,而通訊時服務端你只需選其1就好了。同時用MINA2和Netty4分別實現服務真個目的,是由于很多人都在糾結究竟是用MINA還是Netty來實現高并發的Java網絡通訊服務端,在此干脆兩個都實現了,就看你怎樣選擇了,夠吊吧。

NIO框架的流行,使得開發大并發、高性能的互聯網服務端成為可能。這其中最流行的不過就是MINA和Netty了,MINA目前的主要版本是MINA2、而Netty的主要版本是Netty3和Netty4(Netty5已被取消開發了:詳見此文),本次將使用MINA2和Netty4來實現服務真個代碼。

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

《NIO框架入門》系列文章

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

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

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

本文亮點 

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

本文Demo的場景邏輯

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

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

iOS客戶端準備工作

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

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

補充說明:iOS里的網絡編程有多種途徑實現(具體請參看此文),本文選擇的是iOS里非常熱門的 CocoaAsyncSocket 工程,它對iOS原生網絡API做了進1步封裝,使得開發者更容易使用。

[Step 2] 建好XCode工程,準備開擼:

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

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

iOS客戶端代碼實現

[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 即時通訊網(52im.net)- 即時通訊開發者社區.
//  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];
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美最猛性xxxxx免费 | 中文字幕一区二区三 | 亚洲天堂一区 | 国产成人综合欧美精品久久 | 欧美最猛性xxxxx免费 | 天堂最新在线 | 影院成人区精品一区二区婷婷丽春院影视 | 私人午夜影院 | h网在线| 国产一区二区三区在线看 | 韩国伦理在线影院 | 国产在线观看福利 | 国产精品网站在线观看 | 波多野结衣国产精品 | 久久影视免费观看网址 | 国产亚洲精品自在久久不卡 | 久久久久国产精品免费 | 国产免费播放一区二区 | 最近最新免费中文字幕一 | 午夜三级理论在线观看视频 | 91久久大香伊蕉在人线 | 99heicom视频| 亚洲高清视频在线播放 | 亚洲精品国产一区二区三区在 | 亚洲jizzjizz妇女 | 外国美女一级片 | 亚洲国产一区二区三区精品 | 日韩一区二区在线视频 | 4虎1515hh永久免费 | 亚洲国产成人91精品 | 免费看一级欧美毛片 | 美美女高清毛片视频免费观看 | 欧美理伦 | 中文乱码字字幕在线第5页 中文欧美日韩 | 欧美精品99毛片免费高清观看 | h国产在线| 国产成人做受免费视频 | 亚洲爱爱网 | 国产精品系列在线 | 成人免费播放视频777777 | xxxwww欧美性 |