基于IP/UDP協議的 sock 編程
作者:伍光平
在VC知識庫我學到了很多知識,很短的時間我就掌握了vc,主要是在貴站下了很多源代碼回來分析,學習。看了你處有人將net send封裝進行消息群發(fā)的源代碼,有看見網上某某公司消息群發(fā)軟件要花錢才能購買,于是有感自己編寫一個消息群發(fā)小程序。
特點: vc源代碼,基于IP/UDP協議的sock編程,按messager 服務的通信協議填寫UDP數 據包,可在沒有net send命令的win98 win95下實現消息發(fā)送,代碼里含有messager 的通 信協議。并支持文本內容,ASCII文本圖象發(fā)送。做廣告很不錯。在消息顯示中可屏蔽自 己的主機名。 win2000/xp默認開著信使服務(messager),端口是135,網絡通信方式采用ip/udp協議。一般這種服務使用于局域網,如果用代理就可繞過網關將消息發(fā)出去。 我們先來分析一下ip數據包的結構吧。
一個符合信使服務的數據包前面加上udp包頭(8字節(jié)),就構成了udp包。udp包前面加上20個字節(jié)的ip包頭,就構成了ip包。既是ip包里前28個字節(jié)是網絡協議,從第29字節(jié)開始才是messager所接受的內容。以下簡稱消息包,消息包前80個字節(jié)為消息包頭,當中第41到44字節(jié)為長整型變量,存放發(fā)送時間,第75到78字節(jié)為長整型,存放整個消息包-消息包頭的大小。接下來3個域,每個域頭大小12個字節(jié),前4個和后4個字節(jié)(長整型)都為該域的大小(分配大小取偶),第一個域表示發(fā)送主機名,第二個表示接受主機名,第三個表示內容。*/
|=====20======|====8====|=========80============|=12=|from|=12=|to|=12=| 消息
/////////////////////////////////////////////////////////////////////// 直接采用socket udp協議,發(fā)送消息無法隱藏自己的ip,別人用網絡工具可查到你 的ip,如果前28個字節(jié)都自己加工,采用原始套接字方式進行發(fā)送,偽裝了ip,不怕 查ip;^_^! |