日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

飛鴿傳書原理以及相關(guān)代碼詳解

admin
2016年12月23日 18:31 本文熱度 6757

飛鴿傳書的實(shí)現(xiàn)原理: 

(1)最關(guān)鍵的是局域網(wǎng)用戶列表的建立;飛鴿啟動(dòng)時(shí)使用UDP協(xié)議向 255.255.255.255這個(gè)廣播地址發(fā)送廣播包,默認(rèn)端口是2425。廣播包內(nèi)容包含用戶名、工作組、主機(jī)名、IP等信息;  已啟動(dòng)飛鴿的用戶通過(guò)2425端口收到此廣播包后,就會(huì)在自己的用戶列表中添加這個(gè)用戶的用戶名、工作組等信息,同時(shí)向?qū)Ψ絀P發(fā)送本機(jī)用戶的個(gè)人信息;從而雙方都能建立起用戶列表;

(2)刷新用戶列表時(shí)發(fā)送的廣播包和啟動(dòng)時(shí)差不多,只不過(guò)返回的標(biāo)識(shí)信息略有不同;可以做一個(gè)小工具,監(jiān)控2425端口內(nèi)存流,就能截獲刷新和聊天時(shí)的消息。 

(3)傳送聊天信息時(shí)同樣使用UDP協(xié)議;由于UDP協(xié)議是無(wú)連接協(xié)議,傳輸速度快,但是沒(méi)有確認(rèn)機(jī)制,是不可靠的協(xié)議,需要自己定義返回信息的標(biāo)志來(lái)判斷對(duì)方是否收到信息;  (4)用戶離線時(shí)發(fā)送一個(gè)離線廣播包到255.255.255.255,收到此廣播包的用戶,根據(jù)包中的IP地址(也可能是多種判斷標(biāo)志或者包含硬件標(biāo)識(shí),比如網(wǎng)卡地址等)刪除對(duì)方的用戶列表信息; 

(5)廣域網(wǎng)無(wú)法直接使用廣播方式,靠手工添加"局域網(wǎng)外廣播列表"來(lái)建立相互的關(guān)系;  (6)飛鴿傳送文件是使用TCP協(xié)議,端口2425;

 

(1)      步驟一主要代碼解析如下:

voidlogin(int sockfd,char *user, char *host)

{

   char buf[200]="";

   struct sockaddr_in addr={AF_INET};

   addr.sin_addr.s_addr=inet_addr("192.168.1.255");//自己的主機(jī)ip地址

   addr.sin_port = htons(2425);

   sprintf(buf,"1:%d:%s:%s:%d:%s",time(NULL),user,host,IPMSG_BR_ENTRY,user);

   sendto(sockfd, buf, strlen(buf),0,(structsockaddr*)&addr, sizeof(addr));

}

啟動(dòng)飛鴿傳書的時(shí)候要廣播發(fā)送udp消息。

 

(2)      步驟二

   if((tcp_fd = socket(AF_INET, SOCK_STREAM,0))<0)

   {

            perror("create udp");

            exit(1);

   }

   if(bind(tcp_fd, (struct sockaddr*)&addr,sizeof(addr))!=0)

   {

            perror("bind tcp");

            exit(1);

   }

   listen(tcp_fd, 10);

啟動(dòng)tcp監(jiān)聽其他用戶發(fā)來(lái)的消息

#defineIPMSG_BR_ENTRY                           0x00000001UL

#defineIPMSG_BR_EXIT                      0x00000002UL

#defineIPMSG_ANSENTRY                           0x00000003UL

#define IPMSG_BR_ABSENCE             0x00000004UL

 

udp消息類型標(biāo)志位,根據(jù)收到消息的類型做出不同的操作。

1:IPMSG_BR_ENTRY 新用戶登錄標(biāo)志,回饋本機(jī)信息

                               add_usr(temp[2],temp[3],inet_ntoa(addr.sin_addr));

                               sprintf(buf,"1:%d:%s:%s:%d:%s",time(NULL),user(),host(),IPMSG_ANSENTRY,user());

                               sendto(udp_fd,buf, strlen(buf),0,(struct sockaddr*)&addr,sizeof(addr));

2:IPMSG_BR_EXIT 用戶下線通知,在本機(jī)中刪除用戶

del_usr(inet_ntoa(addr.sin_addr));

3:IPMSG_ANSENTRY 用戶回應(yīng)登錄信息,添加用戶就好

add_usr(temp[2],temp[3],inet_ntoa(addr.sin_addr));     

4:IPMSG_BR_ABSENCE 收到用戶發(fā)來(lái)消息,讀取消息內(nèi)容收取文件或者發(fā)文件。


該文章在 2016/12/23 18:31:37 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved