1. 程式人生 > >C/C++ XMPP/Jabber 客戶端類庫對比/點評

C/C++ XMPP/Jabber 客戶端類庫對比/點評

  ================ gloox ================ Ans. 老牌庫,推薦 gloox是一個穩定功能完整的XMPP客戶端庫, 使用ANSI C++編寫, 使用它編寫標準客戶非常容易, 並能將Jabber/XMPP功能整合到現有的應用程式中, gloox遵循GNU GPL許可協議, 支援商業許可. 特點: 1. 易於使用 2. 可擴充套件性好 3. 平臺無關性(支援多種作業系統) 4. 完整的開發文件 5. 完全支援XMPP核心協議及幾乎所有的XMPP IM協議 6. 支援TLS和SASL安全認證 7. 支援名冊管理 8. 支援隱私名單 9. 支援SRV查詢 10.支援伺服器認證方式 11.支援xml:lang ================ (X)Iris ================ Ans. Qt的,慎用 Iris是基於Qt/C++庫編寫的XMPP/Jabber協議庫,目前它仍然處於開發階段,但已經支援了許多重要的功能。設計目標是全力支援 XMPP協議的正式草案, 庫功能強大且易於使用的,由於大量使用Qt的結構和資料型別, 對於建立客戶端,伺服器和其他元件非常有用. 特點: 1. 支援XMPP核心協議包括: 1) DNS服務查詢 2) SSL/TLS安全認證 3) SASL加密認證 5) 早期的jabber:iq:auth login 6) 資源繫結 7) 支援HTTP連線及Socket5,http代理 8) 高階物件流處理 2. 支援的XMPP-IM協議 1) 訊息交換 2) 出席廣播與接收 3) 名冊管理 4) 訂閱功能 3. JEP擴充套件 1) 版本時間要求 2) 服務發現 3) Jabber賬號註冊 4) 密碼更改 5) 代理註冊 6) VCards 7) 基本組聊天 8) S5B直接連線 9) 檔案傳輸 開發計劃: 1. 完成支援XMPP核心協議的基本服務 2. 確保XMPP的核心完全匹配草案 3. 編寫XMPP的核心文件API 4. 撰寫完整XMPP的即時通訊的API 5. 其他重要規格:x:data, MUC等等 ================ (X)QXmpp ================ Ans. Qt的,慎用 QXmpp是一個跨平臺的C++ XMPP客戶端開發庫, 它是基於Qt庫開發的. QXmpp是非常直觀,易於使用, Qt是唯一的第三方依賴庫, 使用者需要一個有C ++和Qt的基礎知識(Qt的訊號與槽和資料型別)及開發經驗。基礎的TCP套接字和XMPP協議的RFC ( RFC3920和RFC3921 )已被封裝到類和函式 必要時可以擴充套件, 所以,使用者不需要處理這些細節。 說明文件比較少, 沒找到!!! ================ (X)oajabber ================ Ans. 很久沒更新,單人開發,慎用 oajabber是一個支援XMPP/Jabber協議的C++庫, 可擴充套件及靈活性好,它的目標是實現最完整的XMPP/Jabber協議的C++庫, 這在很大程度上依賴於有oapr對執行緒和網路的處理及Xerces-C對XML的解析. ================ (X)iksemel ================ Ans. 介面太複雜,慎用 iksemel是一個為Jabber應用而設計的XML(可擴充套件標記語言)解析器庫。 1. 高度便攜,可在所有的POSIX環境和Windows(via mingw)環境下構建 2. 適用於嵌入式系統。程式碼小,高度模組化,可以削減不必要的部分。記憶體使用量低,解析器速度相當快。 3. 提供的SAX,DOM和XMPP協議分析器。 4. 支援TLS和SASL安全認證 5. 僅支援UTF-8編碼 6. 完整的文件及示例  ================ ?loudmouth ================ Ans. C的,介面太多,慎用 loudmouth是一個用C/Glib編寫的輕量級jabber客戶端庫, 易於使用和擴充套件, 可跨平臺. ================ *** libstrophe ================ Ans. C的,有C++封裝,可以考慮 libstrophe是一個XMPP協議的客戶端和元件通訊的C庫。我們的目標是建立一個庫,它是行動式的,可用的快捷,可靠,有據可查,並充分實現的XMPP規範 ================ *Libjingle ================ Ans. GTalk的庫,可以考慮   Libjingle - Google Talk Voice及 P2P 的互動操作函式庫   Libjingle是Google提供的C++元件集,它為Google Talk的點對點通訊與語音呼叫功能提供互動操作性。元件包包括了Jingle和Jingle-Audio的google實現的原始碼,它們是XMPP標準的推薦擴充套件,目前試驗版可用。   我們釋出此程式碼是為了讓消費者們在實時通訊工具的選擇和操作性更多些。Google的原始碼釋出基於Berkeley協議,也就是說你可以把它們合併到商業或非商業的軟體中併發布。   此外關於Google Talk的互操作性,函式庫裡有許多通用元件如P2P棧,它可用來建立各樣的通訊和協作應用程式。我們希望看到更多組織能夠使用這項技術建立創新的的應用程式。   下面是函式庫各個元件的描述。你可以使用它們中的任一或是全部元件。   base -低階可移植的功能函式   p2p - p2p棧,包括了與XMPP掛鉤的客戶端和基礎p2p函式。   session - 電話呼叫指令以及可變點對點流   third_party - 用於其他功能的非google元件   xmllite -XML解析器   xmpp - XMPP engine =============== *libpurple =============== Ans. Pidgin的庫,推薦 libpurple is intended to be the core of an IM program. When using libpurple, you'll basically be writing a UI for this core chunk of code. Pidgin is a GTK+ frontend to libpurple, Finch is an ncurses frontend, and Adium is a Cocoa frontend. 

相關推薦

C/C++ XMPP/Jabber 客戶對比/點評

  ================ gloox ================ Ans. 老牌庫,推薦 gloox是一個穩定功能完整的XMPP客戶端庫, 使用ANSI C++編寫, 使用它編寫標準客戶非常容易, 並能將Jabber/XMPP功能整合到現有的應用程式中, gloox遵循GNU GPL許可協

C# 不安裝Oracle客戶情況下,如何連接到Oracle數據

是不是 如何 () 需要 -s 找到 密碼 dex add 簡介:   在我們開發應用場景經常碰到需要連接Oracle數據庫,這也是相當常見的一種情況。一般.Net環境連接Oracle數據庫,可以通過TNS/SQL.NET 配置文件,而 TNS 必須要 Oracle 客戶端

Windows socket c++ TCP UDP 簡單客戶 vs2013

進行 msg print type pro i/o while write n) socket 主要是網絡中進程之間的通信,起源於Unix,而“一切皆可文件”的思想一樣可以用在socket上,即 打開 -> 讀寫 -> 關閉。 int socket(int do

學習記錄---C# Web程序獲取客戶電腦信息

C# oid tostring -- mac listen console ads ima 問題描述:由於最近項目需要使用Mac地址與註冊碼進行加密處理,但是又因為Web程序的局限性不能獲取客戶端電腦系統信息,當然IE瀏覽器有一個activex控件他是可以通過Js在前端代碼

C#實現伺服器和客戶之間通訊

TCP  套接字程式設計 伺服器端實現步驟: 1、使用Socket類建立套接字。 2、利用Bind方法將建立的套接字繫結到指定的地址結構。 3、利用Listen方法設定套接字為監聽模式,使得伺服器進入被動開啟狀態。 4、接受客戶端的連線請求。 5、接收、應答客戶端的資料請求

C++實現 電子郵件客戶程式(簡易版)

#Windows作業系統下 用命令列工具實現傳送郵件(程式設計前工作)   步驟:   1.telnet連線伺服器(以網易郵箱為例,埠號25)      2.返回220 說明連線成功   .   3.ehlo傳送使用者名稱(QQ郵箱使用者名稱預設是QQ號)     返回了一堆登入方式

C#不安裝Oracle客戶連線Oracle資料庫

方法如下:(環境:Vs2003+Oracle10g) 1、把instantclient-basic-win32-10.2.0.4.zip中的檔案解壓到指定位置(我本機是解壓到D:/fox,並命名為:instantclient)其內面應該包括:BASIC_README、oci.

基於C/S模式的客戶軟體系統

1 C/S模式     C/S (Client/Server,客戶機/伺服器)模式又稱C/S結構,是軟體系統體系結構的一種。C/S模式簡單地講就是基於企業內部網路的應用系統。客戶端負責執行前臺功能,實現各自的使用者介面和業務邏輯處理;而伺服器端執行資料庫管理系統(DBMS

基於Mysql C Api編寫mysql客戶程式 多執行緒

在編寫mysql客戶端程式時,最常見的就是連線mysql,和關閉mysql,在這裡需要注意,如果使用不當將會造成記憶體洩漏。 單執行緒環境:一般使用 -lmysqlclient連結mysql客戶庫,mysql_init函式會自動呼叫my_library_init初始化my

C# 完整的UDP客戶程式碼 組播+單播 非同步+同步

using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; u

C語言實現sip客戶 1

開源的sip伺服器端,使用過的最好用的是Asterisk,標準C程式實現,程式碼清晰。 sip的client相對比較多,個人使用過有exosip,pjsip和opal。 根據使用經驗,exosip簡單易用,在PC上用比較方便。但是涉及的相關資源太多,用了osip,srtp,

C++基礎--完善Socket C/S ,實現客戶,伺服器斷開重連

相關文章 1 // WindowsSocketServer.cpp : 定義控制檯應用程式的入口點。 2 // 3 4 #include "stdafx.h" 5 #include <iostream&

初識Modbus TCP/IP-------------C#編寫Modbus TCP客戶程式(一)

using System; using System.Windows.Forms; using System.Net.Sockets; using System.Threading; using System.Net; namespace Modbus_TCP_Client { public par

C++利用socket的客戶和伺服器之間傳輸檔案

//伺服器的程式碼檔案有 /* message.h source.h source.cpp server.h server.cpp */ //客戶端的程式碼檔案有 /* message.h 和伺服器端一樣 client.h client.cpp */ //message

如何使用C實現MQTT+TLS客戶程式(1)--使用mosquitto搭建MQTT伺服器

前言 這是一個使用C語言實現的MQTT/TLS的客戶端程式,主要應用在各類嵌入式產品。如果想使用在Android裝置上,讀者可以參考Paho mqtt。 簡單介紹MQTT MQTT遙測傳輸(MQ Telemetry Transport,MQT

C/S 伺服器與客戶連線三次握手與三次揮手原理

前言 TCP(Transmission Control Protocol)網路傳輸控制協議,是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,資料傳輸前建立連線的工作要經過三次握手,資料傳輸後斷開連線的工作要經過四次揮手。 工作過程 –TCP標誌

C++ Socket C/S ,實現客戶,伺服器斷開重連

// WindowsSocketServer.cpp : 定義控制檯應用程式的入口點。 #include "stdafx.h" #include <iostream> #include <string> #include <Windows.h> #include <

使用c++實現一個FTP客戶(三)

  一、gethostbyname(),inet_ntoa()等函式已經過時     使用上面兩個函式時編譯器會報錯並提示函式已經是過時的了(obsolete),應該用getaddrinfo()與InetNtop()代替,這兩個函式都是協議無關的,同時支援IPv4和I

Socket通訊 C#寫服務商 Delphi客戶

      摘要: 最近在做Wince開發,搞一個超市賣場採用手持機盤點的現場作業模組。通訊部分的實現有兩種,其一是通過USB線把資料拷到PDA 上,掃描條碼後,查詢本地的商品資料庫(用SQLite做本地庫),盤點完成後再通過USB把盤點結果匯入伺服器(還是通過讀取SQLi

一個用C++編寫的WebSocket客戶示例程式碼

  上次寫了WebSocket服務端,這次工作當中需要一個用C++實現的WebSocket客戶端,寫好後這裡記一下,免得以後忘記。 本示例共有三個檔案組成,依賴Websocket++第三方庫 其中main.cpp是使用示例 #include <iostream>