W3100SM-S 短信猫代码发送 下
上一篇W3100SM-S 短信猫代码发送 上,只是实现了转码,但是还要借助TCP调试助手来发送,这还是很初级的。最终要实现的是用TCP连接,然后用代码发送。
用Unicocde转码后,还要以十六进制发送,主要是下面代码:
/// <summary> /// 16进制字符串转字节数组 /// </summary> /// <param name="hexString"></param> /// <returns></returns> private static byte[] strToToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16); return returnBytes; } /// <summary> /// 字节数组转16进制字符串 /// </summary> /// <param name="bytes"></param> /// <returns></returns> public static string byteToHexStr(byte[] bytes) { string returnStr = ""; if (bytes != null) { for (int i = 0; i < bytes.Length; i++) { returnStr += bytes[i].ToString("X2"); } } return returnStr; }
主界面如下:
可以手输入IP地址和端口,默认IP为:192.168.1.24,端口号:1234,可以使用IP端口扫描器扫描短信猫,双击列表或单击确定按钮,返回IP地址和端口。
可能大家现在没有短信猫,方便测试,我就写了一个模拟程序,使用模拟程序,手机号输入你自己的也发不到你手机上,首先要先启动服务,如下图:
可以接收短信,可以回复,我是按照协议的格式返回的,手机号是写在程序里的,可以替换。
短信接收格式 输出: 01386152353511851404013113162432好呀。 意义: 0:数据类型为收到短信,后面为短信相关内容。 13:发送方号码长度为13位,86:中国区号 8615235351185:发送方号码。 14:时间戳长度。 13031813184152:时间戳,表示发送时间为13年03月18日18点41分52秒,时区是32
这个叫时间戳,但不是Unix 13位的时间戳,完全两回事,别搞混了。
按照协议解析接收到的短信,显示手机号和时间。