调试AT指令首先要支持串口操作, .net1.x没有支持串口.不过网站上有奉献精神的同志很多,借来用用就ok了,其实就是api调用.
[DllImport("kernel32.dll")]
private static extern int CreateFile(); //打开串口
[DllImport("kernel32.dll")]
private static extern bool ReadFile(); //读串口
[DllImport("kernel32.dll")]
private static extern bool WriteFile(); //写串口
包装包装就成一个.net串口操作类。当然,如果环境假设为.net 2.x以上可以用System.IO.Ports.SerialPort.功能差不多,除了read,就是write.
首先要弄明白的是端口,在设备管理器,打开modem看,里面会告诉你用哪个端口,格式:COMX(X= 1,2,3,4.....)。
接下来就是几个概念了。一个是波特率,也就是最大通信速率,就低不就高。一般modem是56k,所以填57600不错。(这个在设备管理器里也有)
数据位 一般是8 。奇偶校验位 0 停止位 1。当然也有特殊情况,遇到的概率跟中彩票差不多。实在没招,找个串口监视工具,在命令行里输入 "dialer",可以打开window 内置的拨号程序,拨一遍就知道了.
串口搞定,动modem就有戏.先试一下是否连通.(注意这里,at指令是以0d结束,不是字符,是16进制字节,输入时直接敲回车就可以,下同.)
输入: AT
如果连接正确modem会
返回: OK
接下来是拨电话,wirte 一组字符串,加入你要拨的号码,假如是10000号,那就发
输入: ATDT10000
modem会去拨10000,电话就给你接通了.拨不上去,modem会返回 "NO DIALTONE" 或 "BUSY",读取返回值,检测到这两个东东,毙掉它重来.
拿一条分机和它串在一起,等modem接通了,提示我一下,拿起电话机,就可以和对方通话了.
当然,一条电话和一个人没什么竞争力,但多条线就不同了.开几条线程去拨,看谁还能比我快.
[DllImport("kernel32.dll")]
private static extern int CreateFile(); //打开串口
[DllImport("kernel32.dll")]
private static extern bool ReadFile(); //读串口
[DllImport("kernel32.dll")]
private static extern bool WriteFile(); //写串口
包装包装就成一个.net串口操作类。当然,如果环境假设为.net 2.x以上可以用System.IO.Ports.SerialPort.功能差不多,除了read,就是write.
首先要弄明白的是端口,在设备管理器,打开modem看,里面会告诉你用哪个端口,格式:COMX(X= 1,2,3,4.....)。
接下来就是几个概念了。一个是波特率,也就是最大通信速率,就低不就高。一般modem是56k,所以填57600不错。(这个在设备管理器里也有)
数据位 一般是8 。奇偶校验位 0 停止位 1。当然也有特殊情况,遇到的概率跟中彩票差不多。实在没招,找个串口监视工具,在命令行里输入 "dialer",可以打开window 内置的拨号程序,拨一遍就知道了.
串口搞定,动modem就有戏.先试一下是否连通.(注意这里,at指令是以0d结束,不是字符,是16进制字节,输入时直接敲回车就可以,下同.)
输入: AT
如果连接正确modem会
返回: OK
接下来是拨电话,wirte 一组字符串,加入你要拨的号码,假如是10000号,那就发
输入: ATDT10000
modem会去拨10000,电话就给你接通了.拨不上去,modem会返回 "NO DIALTONE" 或 "BUSY",读取返回值,检测到这两个东东,毙掉它重来.
拿一条分机和它串在一起,等modem接通了,提示我一下,拿起电话机,就可以和对方通话了.
当然,一条电话和一个人没什么竞争力,但多条线就不同了.开几条线程去拨,看谁还能比我快.
好了,现在告诉你这咚咚干什么用了:
1 ,可以用来进非常6加1或者"XX不寂寞",我就不信还有人的手比这个还快还有耐心。逮着机会可以狠狠BT李XX
2 ,年关了,抢条线定火车票.如果你那个地方订票系统比较好,或者票多人傻,可以飘过........
3 ,可以用来抢通小MM,前提是小MM太~~多人追了(别做违法的事情,否则我可不管的)
不扯了,详细的AT指令集合及多线程拨号见附件.
百足之虫,死而不僵