基於 XMPP協議的伺服器端 檔案互傳的簡單實現

2021-08-30 10:39:13 字數 810 閱讀 5951

學習一下基於xmpp協議的檔案傳輸,首先假設使用者已經登入,這裡假設clinet send對clinet receive 傳送檔案,這裡記錄了clinet send的傳送和接收xml流記錄

1、傳送請求表示要向clinet test傳送檔案,並傳送檔案大小和檔名

send: 

reams

2、receive 收到send發實來的請求後,傳送出響應流

recv:  reams

3、send收到receive 願意接收的響應後,發出如下xml流

send: 

注意這裡注要是**的設定,agsxmpp 自帶的客戶端是使用**傳輸資料的,所以必須對其做相應的修改,使其支援區域網內支援傳送檔案.

下面我們來看一下伺服器端是如何路由訊息的呢?

從上面所傳送的xml流我們可以看出,實際上使用者傳送檔案所傳送的都是iq節,我們必須對iq節進行路由才能使其找到相應的接收者 ,所以我們需要在xmppserverconnection類中新增如下**:

private void processiq(iq iq)

else

if (iq.query.gettype() == typeof(auth))

else

break;}}

else if (iq.query.gettype() == typeof(roster))

//用**傳送檔案處理

else if(iq.query.firstchild !=null)

}

傳送檔案載圖: 

Socket程式設計 TCP協議 (伺服器端)

using system.collections using system.net using system.net.sockets using system.text using unityengine namespace socket程式設計 tcp協議 ipendpoint是對ip 埠做了一層...

udp傳輸檔案的伺服器端

include include include include include pragma comment lib,ws2 32.lib define max buf 65536 using namespace std int main 建立套接字 socket s s socket af ine...

socket伺服器端

伺服器 include winsock2.h include string.h include stdio.h include time.h include stdarg.h include stdlib.h pragma comment lib,ws2 32 void errexit const ...