im伺服器有什麼意思
① 聊天軟體原理不是說伺服器不會主動向客戶端發送消息嗎只有客戶端請求服務端才會發送,聊天軟體我發送
即時通訊(Instant Messenger,簡稱IM)軟體多是基於TCP/IP和UDP進行通訊的,TCP/IP和UDP都是建立在更低層的IP協議上的兩種通訊傳輸協議。前者是以數據流的形式,將傳輸數據經分割、打包後,通過兩台機器之間建立起的虛電路,進行連續的、雙向的、嚴格保證數據正確性的文件傳輸協議。而後者是以數據報的形式,對拆分後的數據的先後到達順序不做要求的文件傳輸協議。
QQ就是使用UDP協議進行發送和接收消息的。當你的機器安裝了OICQ以後,實際上,你既是服務端(Server),又是客戶端(Client)。當你登錄OICQ時,你的OICQ作為Client連接到騰訊公司的主伺服器上,當你「看誰在線時,你的OICQ又一次作為Client從QQ Server上讀取在線網友名單。當你和你的OICQ夥伴進行聊天時,如果你和對方的連接比較穩定,你和他的聊天內容都是以UDP的形式,在計算機之間傳送。如果你和對方的連接不是很穩定,QQ伺服器將為你們的聊天內容進行中轉。其他的即時通信軟體原理與此大同小異。
一般的步驟:
首先,用戶A輸入自己的用戶名和密碼登錄即時通訊伺服器,伺服器通過讀取用戶資料庫來驗證用戶身份,如果用戶名、密碼都正確,就登記用戶A的IP地址、IM客戶端軟體的版本號及使用的TCP/UDP埠號,然後返回用戶A登錄成功的標志,此時用戶A在 IM系統中的狀態為在線(Online Presence)。
其次,根據用戶A存儲在IM伺服器上的好友列表(Buddy List),伺服器將用戶A在線的相關信息發送到也同時在線的即時通訊好友的PC機,這些信息包括在線狀態、IP地址、 IM客戶端使用的TCP埠(Port)號等,即時通訊好友PC機上的即時通訊軟體收到此信息後將在PC桌面上彈出一個小窗口予以提示。
第三步,即時通訊伺服器把用戶A存儲在伺服器上的好友列表及相關信息回送到他的PC機,這些信息包括也在線狀態、IP地址、IM客戶端使用的TCP埠(Port)號等信息,用戶A的PC機上的IM客戶端收到後將顯示這些好友列表及其在線狀態。
接下來,如果用戶A想與他的在線好友用戶B聊天,他將直接通過伺服器發送過來的用戶B的IP地址、TCP埠號等信息,直接向用戶B的PC機發出聊天信息,用戶B的IM客戶端軟體收到後顯示在屏幕上,然後用戶B再直接回復到用戶A的PC機,這樣雙方的即時文字消息就不通過 IM伺服器中轉,而是通過網路進行點對點的直接通訊,這稱為對等通訊方式(Peer To Peer)。在商用即時通訊系統中,如果用戶A與用戶B的點對點通訊由於防火牆、網路速度等原因難以建立或者速度很慢, IM伺服器還提供消息中轉服務,即用戶A和用戶B的即時消息全部先發送到IM伺服器,再由伺服器轉發給對方。早期的IM系統,在IM客戶端和IM伺服器之間通訊採用採用UDP協議,UDP協議是不可靠的傳輸協議,而在 IM客戶端之間的直接通訊中,採用具備可靠傳輸能力的TCP協議。隨著用戶需求和技術環境的發展,目前主流的即時通訊系統傾向於在即時通訊客戶端之間、即時通訊客戶端和即時通訊伺服器之間都採用TCP協議。
② 什麼是IM服務
IM服務就是即時通訊(Instant Messaging)是目前Internet上最為流行的通訊方式,各種各樣的即時通訊軟體也層出不窮;服務提供商也提供了越來越豐富的通訊服務功能。