惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
O
OpenAI News
W
WeLiveSecurity
Hacker News: Ask HN
Hacker News: Ask HN
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Troy Hunt's Blog
L
LINUX DO - 最新话题
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
Project Zero
Project Zero
Attack and Defense Labs
Attack and Defense Labs
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Tor Project blog
Scott Helme
Scott Helme
T
Threat Research - Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
Spread Privacy
Spread Privacy
Cisco Talos Blog
Cisco Talos Blog
T
Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
P
Privacy & Cybersecurity Law Blog
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
L
Lohrmann on Cybersecurity
Cloudbric
Cloudbric
I
Intezer
The Hacker News
The Hacker News
L
LINUX DO - 热门话题
AI
AI
B
Blog
S
Securelist
P
Proofpoint News Feed
量子位
Jina AI
Jina AI
V2EX - 技术
V2EX - 技术
T
The Exploit Database - CXSecurity.com
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
CERT Recently Published Vulnerability Notes
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 楚潇

有关sqlserver的锁 基于dotnet2.0的联通sgip1.2协议二级网关源码 .net winform下TreeNode在没有子结点时也显示+号的解决办法 在vs2005中用gridview显示表中的image字段 - 楚潇 - 博客园 谁没在变! vs2k5 中asp.net "Web Site Administration Tool "使用中遇到的问题 - 楚潇 美达飞凡16X DVD起死回生记 寄语八十年代的新一代 小胜凭智, 大胜靠德 《windows核心编程》 再读<心航> visual C# 2005 express beta2读配置文件的问题(ms的bug?) C#中判断socket是否已断开的方法 将对象转为byte[] 摘自古龙的句子 端午节到了 C#中的字符串格式化 怎样才能提高.net的水平呢? Reflaction很嚣张的功能
.net开发手机短信
楚潇 · 2005-06-03 · via 博客园 - 楚潇

  如今开发手机短信的文章可多了,下面的地址更绝,收集了好多.net开发手机的技术文章(
串口编程文章列表: http://www.mcuchina.com/Article/Communication/SMS/Index.html
C#开发终端式短信原理及方法: http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/83.html), 对于不懂开发手机短信原理的同仁,看了上面的文章就应该知道了。俺在这里是要作个总结,好以后复习,^_^。
  开发手机短信程序有3种方式:通过电信部门的网关、通过终端、利用一些网站提供的Webservice。偶这里只有第二种可行,并且我对于第二种方式也挺感兴趣,所以仔细地看了看。开发手机短信所用到的技术如下:
    1、sms手机编解码
    2、串口通信
    sms手机编解码主要是用pdu模式,据说我的西门子3618支持,^_^。不懂这种编解码的就看这篇http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/81.html 还有这一篇http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/82.html
    串口通信就有些麻烦了,据说dotnet2.0中有了串口通信的类了,.net1.1则只能依靠第三方的帮助或直接调用API。第三方提供的类有::JustinIO、SerialStream, 上面的类俺还没用过,不好评价; 还可以调用mscomm这个 ocx 控件来实现,可以看这篇文章http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/113.html 了解怎么个用法。
    我想,要熟悉串口编程,不能仅使用别人包装的类,还要了解串口相关的API哦!于是下载有《Visual C++串口编程》《Delphi串口通信编程》来看了相关的API,现在列出相关的API用法:
    CreateFile ()打开串口
    SetupComm设置串口输入输出缓冲区的大小, PurgeComm() 和 FlushFileBuffers()也是针对缓冲操作的;
    GetCommState和SetCommState用于设置串口的状态(比如数据传输率、奇偶校验位等), 这里有个DCB数据结构,好复杂!还好,       BuildCommDCB这个函数为我们提供了设置DCB结构的简便方法;
    GetCommProperties()这个函数使我们能够获取串口的属性,  Windows还提供有 CommConfigDialog()这个函数供我们调用以设置其属性;
    读写串口分别用ReadFile()和WriteFile(), 跟文件操作一样,爽! 不过要是涉及到异步I/O操作就有些麻烦了,在串口编程中的异步I/O操作对应到WINDOWS的API, 术语就叫做“重叠”!相关的函数有 GetOverlappedResult()      (^_^,  俺还没看明白);
    要注意串口的读写超时设置,对应为:GetCommTimeOuts() 和 SetCommTimeOuts();
    如果在通信的过程中出现了错误,一定要调用ClearCommError()才能继续通信;
    要怎么样才知道串口有数据了呢?想起以前学接口技术时老师教的3种方式:轮询(即用while循环)、硬件中断方式、*^%$(还给老师了), 而windows下提供有事件来通知,相应的有 GetCommMask() 、SetCommMask(() 以及 WaitCommEvent();
  还有几个设备控制命令函数: EscapeCommFunction()。SetCommBreak()用于挂起串口通信设备, ClearCommBreak()则做相反的操作;
    最后, 别忘了用 CloseHandle() 关闭串口!

ps: 这个小子的BLOG(http://blog.csdn.net/hesicong/category/23319.aspx), 上面好多开发手机程序的文章