IPMSG飛鴿傳書5 網路協議解析手記2

2021-05-24 01:45:05 字數 1137 閱讀 1933

每次ipmsg在收到上線通告報文後,都要查詢相同ip的節點是否已經存在,只要和結構 體成員host_ip比較就可以了,這樣整個使用者列表當中的成員是不會重複的。報文的傳送主要依靠下邊的函式實現,這裡推薦下邊的這種寫法,特別是對與命 令比較多的情況下,使用下邊的好處就在與結構非常的清晰。

mode: 命令 msg: 附加資訊 struct

sockaddr

*p:網路資訊 fd:網路套接字描述符

int msg_send(

const

int mode,

const

char

* msg,

const

struct

sockaddr

* p,

int fd)

elseif(

( p!=null)&&

( mode!=ipmsg_nooperation)&&

( mode!=ipmsg_br_entry)&&

( mode!=ipmsg_br_exit)

)client=

* p;

//開啟廣播if(

setsockopt

( udp_fd, sol_socket, so_broadcast,

& broadcast_en, broadcast_len)

< 0 )

switch

( mode)

broadcast_en= 0;

// 關掉廣播if(

setsockopt

( udp_fd, sol_socket, so_broadcast,

& broadcast_en, broadcast_len)

< 0 )

printf

("msg send ok ! /n");

return 0;}

通過上邊的報文就可以實現訊息的傳遞,可以發起檔案、資料夾的傳輸,傳輸檔案時,首先需要通過udp報文聯絡,在udp報文聯絡好之後,隨即發起tcp檔案傳輸,檔案傳輸是不帶格式的。ipmsg的乙個難點就是資料夾的傳輸。今天就寫這裡,而卻也做到這裡。

IPMsg飛鴿傳書網路協議解析手記

相信很多人都使用過飛鴿傳書,這個小工具在區域網傳輸資料高效而便捷,自己在大二的時候就想看看飛鴿傳書的原始碼,但那時候自己的水平有限,這幾天有機會重寫飛鴿傳書,也對ipmsg的網路協議做了深入的研究,這裡也要感謝ipmsg的作者公開源 ipmsg可以用於收發訊息和檔案 夾 使用udp協議收發訊息使用t...

IPMSG 飛鴿傳書 協議翻譯

最近看到一些朋友在編寫網路程式是遇到一些問題,故把以前做ipmsg時翻譯的文件貼過來,希望對網路程式設計新手有所幫助,在尋找程式設計專案的同學們也可參照此文件寫出自己的ipmsg。本文只包含其中幾個比較重要的命令以及執行機制的中文翻譯,更詳細的內容請參照文後的ipmsg 協議英文文件 宣告 下述協議...

IPMSG飛鴿傳書3 協議翻譯

最近看到一些朋友在編寫網路程式是遇到一些問題,故把以前做ipmsg時翻譯的文件貼過來,希望對網路程式設計新手有所幫助,在尋找程式設計專案的同學們也可參照此文件寫出自己的ipmsg。本文只包含其中幾個比較重要的命令以及執行機制的中文翻譯,更詳細的內容請參照文後的ipmsg 協議英文文件 宣告 下述協議...