分类: C/C++
2008-04-23 21:43:24
基于IP/UDP协议的 sock 编程
作者:
在VC知识库我学到了很多知识,很短的时间我就掌握了vc,主要是在贵站下了很多源代码回来分析,学习。看了你处有人将net
send封装进行消息群发的源代码,有看见网上某某公司消息群发软件要花钱才能购买,于是有感自己编写一个消息群发小程序。
特点:
vc源代码,基于IP/UDP协议的sock编程,按messager 服务的通信协议填写UDP数
据包,可在没有net send命令的win98 win95下实现消息发送,代码里含有messager 的通
信协议。并支持文本内容,ASCII文本图象发送。做广告很不错。在消息显示中可屏蔽自
己的主机名。
win2000/xp默认开着信使服务(messager),端口是135,网络通信方式采用ip/udp协议。一般这种服务使用于局域网,如果用代理就可绕过网关将消息发出去。
我们先来分析一下ip数据包的结构吧。
一个符合信使服务的数据包前面加上udp包头(8字节),就构成了udp包。udp包前面加上20个字节的ip包头,就构成了ip包。既是ip包里前28个字节是网络协议,从第29字节开始才是messager所接受的内容。以下简称消息包,消息包前80个字节为消息包头,当中第41到44字节为长整型变量,存放发送时间,第75到78字节为长整型,存放整个消息包-消息包头的大小。接下来3个域,每个域头大小12个字节,前4个和后4个字节(长整型)都为该域的大小(分配大小取偶),第一个域表示发送主机名,第二个表示接受主机名,第三个表示内容。*/
|=====20======|====8====|=========80============|=12=|from|=12=|to|=12=|
消息
///////////////////////////////////////////////////////////////////////
直接采用socket udp协议,发送消息无法隐藏自己的ip,别人用网络工具可查到你
的ip,如果前28个字节都自己加工,采用原始套接字方式进行发送,伪装了ip,不怕
查ip;^_^!