日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈飞鸽传书实现原理

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈飞鸽传书实现原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來自:http://www.freeeim.com/news/onews.asp?id=177

??? 局域網聊天軟件飛鴿傳書是目前比較流行的局域網即時通訊軟件,由于歷史悠久,它具有比較多的用戶。

因為 FreeEIM 的實現原理和飛鴿傳書差不多,希望廣大用戶了解其原理后,在使用時更加得心應手。 程序啟動時先讀取用戶配置文件,一般是"*.ini"格式,然后,使用Winsock的廣播消息給整個局域網發送一個數據包,這時候,如果其他電腦已經運行了飛鴿傳書,那么他收到這個包后,會將包的信息讀取出來,當然,這個包里有用戶的IP,用戶名,性別等等。這樣,在用戶列表里就多了一個用戶了。他的用戶檢查方式就如此簡單而已。至于跨網段的實現,只需簡單地修改一下廣播地址就行了,如果不考慮速度,你可以給整個internet發廣播消息。 消息發送,文件傳輸這些功能,都比較簡單,如果你會網絡編程,給你對方IP地址,這些功能實現起來再簡單不過了。語音、視屏等,只需編寫一些語音視頻采集代碼,傳書的話,就像傳文件一樣。 這里給段廣播消息的實現代碼吧: // 發送廣播登陸消息
void EM_UserLogin::SendLogin_BC(LPEM_DATA msg)
{
SOCKET m_socket;
m_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
if (INVALID_SOCKET == m_socket)
{
?? MessageBox(0, "socket failed.", NULL, MB_OK);
}
SOCKADDR_IN sin; sin.sin_addr.s_addr = htonl(INADDR_BROADCAST);
sin.sin_family = AF_INET;
sin.sin_port = htons(BROADCAST_SEND_PORT); BOOL bOpt = TRUE;
if (SOCKET_ERROR == setsockopt(m_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt)))
{
?? // Error occurred
?? ::MessageBox(0,"BC setsockopt error.",0,0);
?? return;
}
char *tmpBuf = msg->GetBuffer();
if (SOCKET_ERROR == sendto(m_socket, tmpBuf, msg->GetLength(), 0, (PSOCKADDR)&sin, sizeof(sin)))
{
?? // Error occurred
?? ::MessageBox(0,"BC sendto error.",0,0);
?? return;
} closesocket(m_socket);
} 我們要向QQ、MSN、ICQ、AIM等大型即時通訊看齊,和他們對比,XEIM只是班級里面的一個差生,要趕得上這些優秀的同學,只有付出更大的努力才有可能追上甚至超趕他們。但是,你什么也不做,這會變成一個笑話。 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的浅谈飞鸽传书实现原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。