• .net开发手机短信


      如今开发手机短信的文章可多了,下面的地址更绝,收集了好多.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), 上面好多开发手机程序的文章

  • 相关阅读:
    Hadoop配置文件参数详解
    Flume
    Oozie
    springmvc全局异常处理ControllerAdvice区分返回响应类型是页面还是JSON
    jsplumb 初识
    RabbitMQ 在Windows环境下安装
    Springboot2+SpringSecurity+Oauth2+Mysql数据库实现持久化客户端数据
    FastDFS与hadoop的HDFS区别
    springboot指定注解扫描范围
    Spring Boot2.0以上版本EmbeddedServletContainerCustomizer被WebServerFactoryCustomizer替代
  • 原文地址:https://www.cnblogs.com/JLL/p/167652.html
Copyright © 2020-2023  润新知