IM即時通訊簡章

即時通訊(Instant Messenger即硼,簡稱IM)軟件多是基于TCP/IP和UDP進(jìn)行通訊的颗搂,TCP/IP和UDP都是建立在更低層的IP協(xié)議上的兩種通訊傳輸協(xié)議。前 者是以數(shù)據(jù)流的形式,將傳輸數(shù)據(jù)經(jīng)分割留量、打包后,通過兩臺機(jī)器之間建立起的虛電路,進(jìn)行連續(xù)的楼熄、雙向的子漩、嚴(yán)格保證數(shù)據(jù)正確性的文件傳輸協(xié)議搭儒。而后者是以數(shù) 據(jù)報的形式,對拆分后的數(shù)據(jù)的先后到達(dá)順序不做要求的文件傳輸協(xié)議。

QQ就是使用UDP協(xié)議進(jìn)行發(fā)送和接收消息的篙程。當(dāng)你的機(jī)器安裝了OICQ以后,實(shí)際上登夫,你既是服務(wù)端(Server)拷邢,又是客戶端(Client)。當(dāng)你登錄OICQ時平斩,你的OICQ作為Client連接到騰訊公司的主服務(wù)器上亚享,當(dāng)你看誰在線時,你的OICQ又一次作為Client從QQ Server上讀取在線網(wǎng)友名單绘面。當(dāng)你和你的OICQ伙伴進(jìn)行聊天時欺税,如果你和對方的連接比較穩(wěn)定,你和他的聊天內(nèi)容都是以UDP的形式飒货,在計算機(jī)之間傳 送魄衅。如果你和對方的連接不是很穩(wěn)定,QQ服務(wù)器將為你們的聊天內(nèi)容進(jìn)行中轉(zhuǎn)塘辅。其他的即時通信軟件原理與此大同小異晃虫。

一般的步驟:

首先,用戶A輸入自己的用戶名和密碼登錄即時通訊服務(wù)器扣墩,服務(wù)器通過讀取用戶數(shù)據(jù)庫來驗(yàn)證用戶身份哲银,如果用戶名、密碼都正確呻惕,就登記用戶A的IP地址荆责、IM客戶端軟件的版本號及使用的TCP/UDP端口號, 然后返回用戶A登錄成功的標(biāo)志亚脆,此時用戶A在 IM系統(tǒng)中的狀態(tài)為在線(Online Presence)做院。

其次,根據(jù)用戶A存儲在IM服務(wù)器上的好友列表 (Buddy List)濒持,服務(wù)器將用戶A在線的相關(guān)信息發(fā)送到也同時在線的即時通訊好友的PC機(jī)键耕,這些信息包括在線狀態(tài)、IP地址柑营、 IM客戶端使用的TCP端口(Port)號等屈雄,即時通訊好友PC機(jī)上的即時通訊軟件收到此信息后將在PC桌面上彈出一個小窗口予以提示。

第三步官套,即時通訊服務(wù)器把用戶A存儲在服務(wù)器上的好友列 表及相關(guān)信息回送到他的PC機(jī)酒奶,這些信息包括也在線狀態(tài)蚁孔、IP地址、IM客戶端使用的TCP端口(Port)號等信息惋嚎,用戶A的PC機(jī)上的IM客戶端收到 后將顯示這些好友列表及其在線狀態(tài)杠氢。

接下來,如果用戶A想與他的在線好友用戶B聊天另伍,他將直接通過服務(wù)器發(fā)送過來的用戶B的IP地址修然、TCP端口號等信息,直接向用戶B的PC機(jī)發(fā)出聊天信息质况,用戶B的IM客戶端軟件收到后顯示在屏幕上愕宋,然后用戶B再直接回復(fù)到用戶A的PC機(jī),這樣雙方的即時文字消息就不通過 IM服務(wù)器中轉(zhuǎn)结榄,而是通過網(wǎng)絡(luò)進(jìn)行點(diǎn)對點(diǎn)的直接通訊中贝,這稱為對等通訊方式(Peer To Peer) 。在商用即時通訊系統(tǒng)中臼朗,如果用戶A與用戶B的點(diǎn)對點(diǎn)通訊由于防火墻邻寿、網(wǎng)絡(luò)速度等原因難以建立或者速度很慢, IM服務(wù)器還提供消息中轉(zhuǎn)服務(wù)视哑,即用戶A和用戶B的即時消息全部先發(fā)送到IM服務(wù)器绣否,再由服務(wù)器轉(zhuǎn)發(fā)給對方。早期的IM系統(tǒng)挡毅,在IM客戶端和IM服務(wù)器之間通訊采用采用UDP協(xié)議蒜撮,UDP協(xié)議是不可靠的傳輸協(xié)議,而在 IM客戶端之間的直接通訊中跪呈,采用具備可靠傳輸能力的TCP協(xié)議段磨。隨著用戶需求和技術(shù)環(huán)境的發(fā)展,目前主流的即時通訊系統(tǒng)傾向于在即時通訊客戶端之間耗绿、即時通訊客戶端和即時通訊服務(wù)器之間都采用TCP協(xié)議 苹支。

S——C1

|

| C1每次想和C2通信,先向S遞一個申請误阻,然后S同意债蜜,把信息轉(zhuǎn)交C2,  以后每次通信都這樣

C2

S——C1

|

| C1第一次想和C2通信,向S遞一個申請究反,S同意寻定,告訴C1,C2,然后 C1和 C2之間建立了一條連接,可以直接通信奴紧,無需經(jīng)過S.

C2

第 一種特姐,對服務(wù)器的性能要求比較高晶丘,要求服務(wù)器可以同時處理很高的連接數(shù)黍氮,因?yàn)樗行畔⒍家ㄟ^服務(wù)器進(jìn)行傳遞唐含,同時,它可以對所傳遞的信息進(jìn)行控制沫浆。

第二種捷枯,僅僅是用戶登陸或下線時與服務(wù)器進(jìn)行連接,平時進(jìn)行通信時专执,是用戶之間直接進(jìn)行點(diǎn)對點(diǎn)的連接淮捆,這種實(shí)現(xiàn)更合理一 些。

QQ聊天信息是在兩個用戶間直接通信的,而MSN要經(jīng)過服務(wù)器中轉(zhuǎn).

QQ當(dāng)用戶登陸時本股,用戶需要首先與qq服務(wù)器進(jìn)行連接進(jìn)行登錄攀痊,服務(wù)器會向客戶返回一些信息,比如你的好有的在線情況以及ip的信息拄显,然后客戶可以與你所請求的朋友進(jìn)行點(diǎn)對點(diǎn)連接苟径,兩者互相通信。

那 如果 c1和c2都在私網(wǎng)內(nèi)躬审,要通過路由器做NAT才能出去的話棘街,他們之間的socket是如何建立的呢?

看一下下面的協(xié)議.

Simple Traversal of User Datagram Protocol (UDP) Through Network

Address Translators (NATs) (STUN)承边。

STUN遭殉,是為了實(shí)現(xiàn)透明的穿透NAT,而定義的一套協(xié) 議博助。他使本地的內(nèi)網(wǎng)的機(jī)器险污,具有取得,能夠得知他的NAT網(wǎng)關(guān)的IP富岳,NAT類型的能力罗心。

為什么需要STUN:

因?yàn)镹AT雖然解決了IP地址稀少的問題,但是也帶來了很多的問題城瞎。比如所有P2P應(yīng)用渤闷,像文件SHARE,多媒體脖镀,和在線游戲等等.

為了解決這個問題飒箭,有人將 Application Layer Gateways (ALGs) 放到了NAT中,

ALGs 也有嚴(yán)重的問題蜒灰,比如跟不上速度太塊的CLIENT弦蹂,每一個應(yīng)用都需要單獨(dú)的實(shí)現(xiàn)。

跟不上應(yīng)用的發(fā)展强窖。

為了克服ALGS的問題凸椿,又提出了the Middlebox Communications (MIDCOM) protocol

中間合協(xié)議〕崮纾可是MIDBOX協(xié)議使 脑漫,一些CLIENT可以控制NAT/防火墻的行為髓抑,通過這個

把應(yīng)用協(xié)議和NAT部分分開,把ALGS從基本NAT里面處理開优幸。不過因?yàn)橐幚鞰IDBOX吨拍,那么

所有的NAT或者防火墻都要升級,

因?yàn)樯厦娣N種原因:

The protocol described here, Simple Traversal of UDP Through NAT

(STUN), allows entities behind a NAT to first discover the presence

of a NAT and the type of NAT, and then to learn the addresses

bindings allocated by the NAT. STUN requires no changes to NATs, and

works with an arbitrary(任意) number of NATs in tandem between the

application entity and the public Internet.

要想穿透NAT网杆,首先知道NAT的一些特性:

NAT分為4種(加上防火墻的話羹饰,多幾種情況):

1.完全透明NAT(Full Cone NAT):

從相同內(nèi)部主機(jī)(IN IPX) +端口(IN PORTX)發(fā)送的數(shù)據(jù)MAPING為相同的IP(OUT IP X)和端口(OUT PORT X)發(fā)送帶外網(wǎng).

并且 從另一個服務(wù)器(Y),如果直連到MAPING的IP(OUT IP X)和端口(OUT PORT X )上碳却,數(shù)據(jù)將會被轉(zhuǎn)發(fā)到內(nèi)部主機(jī)上. (IN IPX), (IN PORTX).

//也就是說進(jìn)內(nèi)部網(wǎng)的數(shù)據(jù)包的SPORT队秩,SPORT不受限制

2.受限NAT(Restricted Cone),

從相同內(nèi)部主機(jī)IN IPX) +端口((IN PORTX))發(fā)送的數(shù)據(jù)MAPING為相同的IP(X)和端口發(fā)送帶外網(wǎng).

和完全NAT不同的是,只有當(dāng)為X時昼浦,外部機(jī)器的的請求就被轉(zhuǎn)發(fā)到主機(jī)IN IPX) +端口((IN PORTX)刹碾。

也就是說進(jìn)內(nèi)部網(wǎng)的數(shù)據(jù)包的,SPORT不受限制座柱,SIP受限制迷帜,只能為NAT MAP數(shù)據(jù)的IP

3,端口受限NAT(Port Restricted Cone:)

和受限NAT不同的是色洞,只有當(dāng)外部主動請求的的源IP和端口戏锹,等于內(nèi)部網(wǎng)發(fā)送的請求的目的IP和端口。

4.對稱NAT(Symmetric)

如果發(fā)送的包的目的IP AND PORT火诸,那么MAPPING IP AND PORT锦针,將相同。

內(nèi)部網(wǎng)同一臺機(jī)器置蜀,同一個端口 如果目的地址不同奈搜,那么MAPPING的端口也不同,

所以只有他主動連的服務(wù)器才可能知道他的MAPPING后端口盯荤,別的服務(wù)器如果想

連他只能靠猜測端口馋吗。

總結(jié):

前面3重NAT,MAPING PORT 和 IP秋秤,是根據(jù)發(fā)送包的的內(nèi)部網(wǎng)的IP和端口決定的宏粤。

如果數(shù)據(jù)的內(nèi)網(wǎng)IP和端口相同,那么MAPPING后的端口和地址是固定灼卢。

這個功能為我們的穿越提供了很好條件绍哎。

第4種NAT,打洞后的MAPPING 地址和端口將變地不可靠鞋真。很難穿越崇堰。

注意SERVERA,和SERVERB是兩個公網(wǎng)地址,而不是兩臺機(jī)器海诲,

STUN 的簡單操作過程:

發(fā)送請求繁莹。請求分為兩種

1. Binding Requests, sent over UDP,

用來發(fā)現(xiàn)是否NAT,用來發(fā)現(xiàn)NAT的公網(wǎng)地址饿肺,和MAPPING后的端口

2.Binding Response,

服務(wù)器產(chǎn)生Binding Response,并把得到的MAPPINGIP 和端口盾似,返回到客戶端敬辣, 客戶端比較MAPPING地址是否 和本機(jī)地址相同,如果是說明是本機(jī)也是公網(wǎng)零院,否則判斷NAT的類型(判斷方法:client uses additional STUN Binding Requests)

3.Binding Error溉跃,

4.Shared Secret Requests, sent over TLS [2] over TCP.

這個請求要求服務(wù)器返回一臨時用戶名和密碼,用來下一步的Binding Requests/ Response,用來驗(yàn)證信息的完整性

5.Shared Secret Response,

6 Shared Secret Error Response告抄。

STUN 信息結(jié)構(gòu)

STUN 由以后數(shù)據(jù)結(jié)構(gòu)構(gòu)成:STUN頭+STUN有效載荷

STUN頭結(jié)構(gòu)如下: 存儲的值都是以網(wǎng)絡(luò)順序存放

字段類型

STUN message type Short int 消息類型

Length Short int 有效載荷長度,不包含頭長度

transaction ID octet[16] 連接的ID值撰茎,檢查Request,

和Response

STUN的有效載荷

SHUN的有效載荷 是一些STUN的屬性構(gòu)成,屬性的類型由信息的類型來決定打洼。

STUN的屬性是定義好了的龄糊,屬性列表(attribute)如下:

MAPPED-ADDRESS 必選 用在Binding Response,(添入MAPING IP 和PORT)

RESPONSEADDRESS 可選 用在Binding Request,指定Response,發(fā)送到哪里

如果沒有指定募疮,Response發(fā)送到MAPING IP 和 PORT

CHANGE-REQUEST 可選 用在Binding Request炫惩。用來決定,CLIENT的NAT類型是限制NAT阿浓,還是端口限制NAT他嚷,(命令服務(wù)器從不同的源端口/IP,Response請求)

CHANGED-ADDRESS 可選 用在Binding Responses告訴Client改變的端口和IP

SOURCE-ADDRESS 必選 只用在Binding Responses芭毙,標(biāo)記信息的源PORT HE IP

USERNAME 可選 Shared Secret Response/ Binding Requests

PASSWORD, 必選 SharedSecret Response

ESSAGEINTEGRITY 可選 用在Binding Responses, Binding Request記錄信息的完整性

ERROR-CODE Binding Error Response and Shared Secret Error Response.

UNKNOWN-ATTRIBUTES

REFLECTED-FROM Binding Responses.用于追溯和防止DDOS

穿透的方法和過程

注意SERVER1筋蓖,和SERVER2是兩個公網(wǎng)地址,而不是兩臺機(jī)器.

一退敦、IM技術(shù)概念

IM技術(shù)全稱Instant Messaging粘咖,中文翻譯“即時通訊”,它是一種使人們能在網(wǎng)上識別在線用戶并與他們實(shí)時交換消息的技術(shù)侈百,是電子郵件發(fā)明以來迅速崛起的在線通訊方 式涂炎。

IM的出現(xiàn)和互聯(lián)網(wǎng)有著密不可分的關(guān)系,IM完全基于 TCP/IP網(wǎng)絡(luò)協(xié)議族實(shí)現(xiàn)设哗,而TCP/IP協(xié)議族則是整個互聯(lián)網(wǎng)得以實(shí)現(xiàn)的技術(shù)基礎(chǔ)唱捣。 最早出現(xiàn)即時通訊協(xié)議是IRC(Internet Relay Chat),但是可惜的是它僅能單純的使用文字网梢、符號的方式通過互聯(lián)網(wǎng)進(jìn)行交談和溝通震缭。隨著互連網(wǎng)變得高度發(fā)達(dá),即時通訊也變得遠(yuǎn)不止聊天這么簡單战虏,自 1996年第一個IM產(chǎn)品ICQ發(fā)明后拣宰,IM的技術(shù)和功能也開始基本成型党涕,語音、視頻巡社、文件共享膛堤、短信發(fā)送等高級信息交換功能都可以在IM工具上實(shí)現(xiàn),于 是功能強(qiáng)大的IM軟件便足以搭建一個完整的通信交流平臺晌该。目前最具代表性的幾款的IM通訊軟件有MSN肥荔、Google Talk、Yahoo朝群、Messenger 燕耿、騰訊QQ等。

二姜胖、IM技術(shù)原理和工作方式

典型的IM工作方式如下:登陸IM通訊中心(IM通訊服務(wù)器)誉帅,獲取一個自建立的歷史的交流對象列表(好友列表),然后自身標(biāo)志為在線狀態(tài)右莱,當(dāng)好友列表中的某人在任何時候登錄上線并試圖通過你的計算機(jī)聯(lián)系你 時蚜锨,IM系統(tǒng)會發(fā)一個消息提醒你,然后你能與他建立一個聊天會話通道進(jìn)行各種消息如鍵入文字慢蜓、通過語音等的交流.

從技術(shù)上來說踏志,IM的基本技術(shù)原理如下:

通過IM服務(wù)器登陸或注銷

用戶A通過列表找到B,用戶B獲得消息并與之交談

通過IM服務(wù)器指引建立與B單獨(dú)的通訊通道

第一步胀瞪,用戶A輸入自己的用戶名和密碼登錄IM服務(wù)器针余, 服務(wù)器通過讀取用戶數(shù)據(jù)庫來驗(yàn)證用戶身份,如果驗(yàn)證通過凄诞,登記用戶A的IP地址圆雁、IM客戶端軟件的版本號及使用的TCP/UDP端口號,然后返回用戶A登錄成功的標(biāo)志帆谍,此時用戶A在IM系統(tǒng)中的狀態(tài)為在線(Online Presence)伪朽。

第二步,根據(jù)用戶A存儲在IM服務(wù)器上的好友列表 (Buddy List)汛蝙,服務(wù)器將用戶A在線的相關(guān)信息發(fā)送給也同時在線的IM好友的PC機(jī)烈涮,這些信息包括在線狀態(tài)、IP地址窖剑、IM客戶端使用的TCP端口 (Port)號等坚洽,IM好友的客戶端收到此信息后將在予以提示。

第三步是IM服務(wù)器把用戶A存儲在服務(wù)器上的好友列表及 相關(guān)信息回送到他的客戶端機(jī)西土,這些信息包括也在線狀態(tài)讶舰、IP地址、IM客戶端使用的TCP端口(Port)號等信息,用戶A的IM客戶端收到后將顯示這些好友列表及其在線狀態(tài)跳昼。

三般甲、IM通訊方式

1.在線直接通訊

如果用戶A想與他的在線好友用戶B聊天,他將直接通過服務(wù)器發(fā)送過來的用戶B的IP地址鹅颊、TCP端口號等信息敷存,直接向用戶B的PC機(jī)發(fā)出聊天信息,用戶B 的IM客戶端軟件收到后顯示在屏幕上堪伍,然后用戶B再直接回復(fù)到用戶A的PC機(jī)锚烦,這樣雙方的即時文字消息就不再IM服務(wù)器中轉(zhuǎn),而是直接通過網(wǎng)絡(luò)進(jìn)行點(diǎn)對點(diǎn) 的通訊杠娱,即對等通訊方式(Peer To Peer)挽牢。

2.在線代理通訊

用戶A與用戶B的點(diǎn)對點(diǎn)通訊由于防火墻谱煤、網(wǎng)絡(luò)速度等原因難以建立或者速度很慢摊求,IM服務(wù)器將會主動提供消息中轉(zhuǎn)服務(wù),即用戶A和用戶B的即時消息全部先發(fā) 送到IM服務(wù)器刘离,再由服務(wù)器轉(zhuǎn)發(fā)給對方室叉。

3.離線代理通訊

用戶A與用戶B由于各種原因不能同時在線的時候,如此時A向B發(fā)送消息硫惕,IM服務(wù)器可以主動寄存A用戶的消息茧痕,到B用戶下一次登陸的時候,自動將消息轉(zhuǎn)發(fā) 給B恼除。

4.擴(kuò)展方式通訊

用戶A可以通過IM服務(wù)器將信息以擴(kuò)展的方式傳遞給B踪旷,如短信發(fā)送方式發(fā)送到B的手機(jī),傳真發(fā)送方式傳遞給B的電話機(jī)豁辉,以email的方式傳遞給B的電子郵箱等令野。

早期的IM系統(tǒng),在IM客戶端和IM服務(wù)器之間通訊采用UDP協(xié)議徽级,UDP協(xié)議是不可靠的傳輸協(xié)議气破,而在IM客戶端之間的直接通訊中,采用具備可靠傳輸能 力的TCP協(xié)議餐抢。隨著用戶需求和技術(shù)環(huán)境的發(fā)展现使,目前主流的IM系統(tǒng)傾向于在IM客戶端之間、IM客戶端和IM服務(wù)器之間都采用TCP協(xié)議旷痕。

即時通訊相對于其他通訊方式如電話碳锈、傳真、email等的最大優(yōu)勢就是消息傳達(dá)的即時性和精確性欺抗,只要消息傳遞雙方均在網(wǎng)絡(luò)上可以互通殴胧,使用即時通訊軟件傳遞消息,傳遞延時僅為1秒種.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市团滥,隨后出現(xiàn)的幾起案子竿屹,更是在濱河造成了極大的恐慌,老刑警劉巖灸姊,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拱燃,死亡現(xiàn)場離奇詭異,居然都是意外死亡力惯,警方通過查閱死者的電腦和手機(jī)碗誉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來父晶,“玉大人哮缺,你說我怎么就攤上這事〖缀龋” “怎么了尝苇?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長埠胖。 經(jīng)常有香客問我糠溜,道長,這世上最難降的妖魔是什么直撤? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任非竿,我火速辦了婚禮,結(jié)果婚禮上谋竖,老公的妹妹穿的比我還像新娘红柱。我一直安慰自己,他們只是感情好蓖乘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布锤悄。 她就那樣靜靜地躺著,像睡著了一般驱敲。 火紅的嫁衣襯著肌膚如雪铁蹈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天众眨,我揣著相機(jī)與錄音握牧,去河邊找鬼。 笑死娩梨,一個胖子當(dāng)著我的面吹牛沿腰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狈定,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼颂龙,長吁一口氣:“原來是場噩夢啊……” “哼习蓬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起措嵌,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤躲叼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后企巢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枫慷,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年浪规,在試婚紗的時候發(fā)現(xiàn)自己被綠了或听。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡笋婿,死狀恐怖誉裆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缸濒,我是刑警寧澤足丢,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站绍填,受9級特大地震影響霎桅,放射性物質(zhì)發(fā)生泄漏栖疑。R本人自食惡果不足惜讨永,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遇革。 院中可真熱鬧卿闹,春花似錦、人聲如沸萝快。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揪漩。三九已至旋恼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奄容,已是汗流浹背冰更。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昂勒,地道東北人蜀细。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像戈盈,于是被迫代替她去往敵國和親奠衔。 傳聞我的和親對象是個殘疾皇子谆刨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

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

  • 即時通訊(Instant Messenger,簡稱IM)軟件多是基于TCP/IP和UDP進(jìn)行通訊的归斤,TCP/IP和...
    xh_0129閱讀 3,487評論 2 26
  • 一痊夭、前言 IM發(fā)展至今,已是非常重要的互聯(lián)網(wǎng)應(yīng)用形態(tài)之一脏里,尤其移動互聯(lián)網(wǎng)時代生兆,它正以無與論比的優(yōu)勢降低了溝通成本和...
    Sky109閱讀 4,285評論 1 60
  • [TOC] 即時通訊IM技術(shù)領(lǐng)域基礎(chǔ)篇 即時通訊IM技術(shù)領(lǐng)域提高篇 議題 準(zhǔn)備工作(協(xié)議選型)網(wǎng)絡(luò)傳輸協(xié)議選擇 和...
    AllenWu閱讀 5,988評論 0 16
  • 前言 本文會用實(shí)例的方式,將iOS各種IM的方案都簡單的實(shí)現(xiàn)一遍膝宁。并且提供一些選型鸦难、實(shí)現(xiàn)細(xì)節(jié)以及優(yōu)化的建議。 注:...
    maTianHong閱讀 2,374評論 4 12
  • 大腦中心------丘腦是人的情愛中心,其間貯藏著丘比特之箭——多種神經(jīng)遞質(zhì)介返,也稱為戀愛興奮劑拴事,包括多巴胺,腎上腺...
    曦陽惜夏閱讀 392評論 0 2