其實(shí)寫(xiě)這個(gè)socket一開(kāi)始我是拒絕的。
因?yàn)榇蠹覍W(xué)C 語(yǔ)言和linux基礎(chǔ)時(shí)肯定都有接觸,客戶端和服務(wù)端的通信也都了解過(guò),加上現(xiàn)在很多開(kāi)放的第三方庫(kù)都不需要我們來(lái)操作底層的通信。
但是!還是想寫(xiě)。底層的東西最好了解下。
效果
由于5M的上傳限制GIF可能看不清 我再截兩張圖吧
服務(wù)器
客戶端A
客戶端B
模型圖
分析
由上圖可以了解到服務(wù)器和客戶端需要做哪些工作
服務(wù)器
抽象一點(diǎn)分為:
1.創(chuàng)建線程等待接收客戶端的連接
2.接收并解析客戶端發(fā)來(lái)的消息
3.給客戶端發(fā)送消息
具體一點(diǎn):
1.創(chuàng)建socket. 綁定端口.開(kāi)始監(jiān)聽(tīng).
2.創(chuàng)建線程.等待接收客戶端連接.
3.接收客戶端發(fā)來(lái)的消息
4.解析消息內(nèi)容
a.設(shè)置用戶名
b.發(fā)送消息給指定客戶端
客戶端
抽象一點(diǎn)分為:
1.連接服務(wù)器
2.給服務(wù)器發(fā)送消息
3.接收服務(wù)器消息
4.解析消息內(nèi)容
具體一點(diǎn):
1.創(chuàng)建socket.綁定端口.連接服務(wù)器
2.發(fā)送消息
a.設(shè)置用戶名
b.給指定用戶發(fā)消息:按服務(wù)器格式拼接字符串
3.接收消息
a.普通消息
b.用戶列表:保存至用戶列表
UI方面
服務(wù)器:其實(shí)不用什么UI放個(gè)控件展示下日志就是了
客戶端:比較簡(jiǎn)單,一個(gè)俗套聊天室的界面,直接storyboard里拖拖控件設(shè)置約束了
DEMO而已別太當(dāng)真
代碼部分
服務(wù)器
要使用scoket需要引用這三個(gè)頭文件
#include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站jinyejixie.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞標(biāo)題:iOS使用socket實(shí)現(xiàn)即時(shí)通信示例(非第三方庫(kù))-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://jinyejixie.com/article20/dsejco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站、電子商務(wù)、ChatGPT、網(wǎng)站制作、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容