從昨天晚上到現在,斷斷續續花了一點時間終於把IP多播實現了.這也可以說是完成了我的一個小心願吧.因爲以前在學校的時候就想過做這個東西,不過由於客觀條件限制,沒有完成.看來大學沒有買電腦還真是一個不小的錯誤.
在做的過程中遇到了一些問題,多虧了網絡這個大寶庫,在這裏謝謝各位兄弟姐妹的經驗共享,我也把我做過程中的一些問題記下來,方便自己也方便各位參考.
核心代碼是:
上面主要就是一個WSASocket的問題,這個東西很多人在MFC條件下都會遇到一個問題就是不能用.解決它的辦法是將stdafx.h頭文件中加入winsock2.h和在project->setting->LINK中加入ws2_32.lib.同時注意,如果在你原來的stdafx.h文件中有類似afxsock.h頭文件的話,請將其刪除.否則會出現衝突.
還有一處比較關鍵的代碼是:
此處應該做的就是將點對點中的地址改爲多播地址.如果仍採用原來的點對點地址進行發送的話,我嘗試過使用本地迴路地址127.0.0.1,但是在接受端沒辦法接收.或許因爲接收端的m_socket已經加入多播組的緣故.
同時我還做的一件事情就是添加一個析構函數
其他地方與點對點的通信沒有多大區別.
還有一個是採用我的這種方法,socket應爲2.0版本.因此在加載套接字庫的過程當中應加載2.0版本.也可以直接用MSDN當中的事例.把afxsockinit刪除.
大概就這麼多,又學習了一點,不過路還很長.