CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  移动平台 >  开发平台

电脑和手机互通!!!

楼主LIJUNCN()2004-05-03 21:45:03 在 移动平台 / 开发平台 提问

要写一个手机与电脑互通的软件  
  比如:可以通过电脑写短信并发送,或者用手机控制电脑的开关,等等。。  
  请问   各位大虾    
  要写这样的软件该怎样着手呢?  
  有哪些步骤?  
  谢谢!! 问题点数:0、回复次数:28Top

1 楼MyNetworks(弟大物勃)回复于 2004-05-06 10:39:03 得分 0

电脑控制手机可以用ETSI制定的标准AT命令,在电脑上实现就是传统的串口编程。手机控制电脑怕不好实现。  
   
  Top

2 楼sunwhite()回复于 2004-05-07 21:36:22 得分 0

一般来讲手机和电脑通讯采用串口或者USB,但不论用哪个,最终都要转换成串口通讯。  
  对于发送短信这样的功能,采用AT命令即可。Top

3 楼renhao110(一笑而过)回复于 2004-05-08 21:15:00 得分 0

问一个菜鸟的问题什么叫at呀Top

4 楼wunifeng(蛐蛐)回复于 2004-05-09 01:23:49 得分 0

对于楼主的问题,电脑写短信发送:串口编程+at指令就可以搞定。  
  手机控制电脑开关确实。。。。。。。。。很难  
   
   
  at指令是一些串口设备能够读懂的“命令”,可以用at指令来控制这些串口设备完成一定的工作Top

5 楼start001(需要人气!!!)回复于 2004-05-09 10:06:50 得分 0

完全可以,不过要安装一个俺的软件才可以。Top

6 楼surge_diligent()回复于 2004-05-09 17:33:38 得分 0

完全自己搞是不行的;你在手机公司任职是可以的!Top

7 楼tompkins2000(AirHunter)回复于 2004-05-09 20:06:29 得分 0

完全可以自己做,网上有很多资料可找。不过不同的手机AT指令可能有所不同。Top

8 楼9527(做人好累,下辈子我要做棵大树)回复于 2004-05-10 09:04:54 得分 0

很简单,分成两部分就是了  
  1、计算机控制收发短信  
  2、解析短信命令格式控制计算机  
   
  1中看串口编程和短信相关的几个命令就可以了  
  2中windows相关API,想做的好的话和手机本身没有直接关系  
   
  没有什么不行的Top

9 楼9527(做人好累,下辈子我要做棵大树)回复于 2004-05-10 09:07:59 得分 0

1中看串口编程和短信相关的几个AT命令就可以了Top

10 楼kejian(御剑飞仙)回复于 2004-06-09 12:48:39 得分 0

如果用解释短信消息的形式控制电脑关机,那你得在电脑终端也得连一台移动设备.  
  这个好处是可以随时随地关机.  
   
  还有就是用蓝牙控制,电脑终端得安有蓝牙适配器.一两百.  
  不过控制距离最远只有二十米.  
   
  蓝牙不用money短信...Top

11 楼LIJUNCN()回复于 2004-07-02 12:17:33 得分 0

请问AT指令咋个用喃?Top

12 楼nlnc(风之8号)回复于 2004-07-03 20:14:42 得分 0

AT指令集,串口通讯,PDU编解码。  
   
  软件及手机通讯COM组件:www.fhxysoft.com/download/ydf_1_full.rar  
   
  AT指令集:www.fhxysoft.com/download/at.rar  
   
  www.fhxysoft.com  
  Top

13 楼guo_hai13()回复于 2004-07-06 17:15:05 得分 0

手机通过WAP应用执行计算机关机程序就行了,很简单Top

14 楼spook_l(睿懿)回复于 2004-07-14 17:02:25 得分 0

upTop

15 楼upsoft(upsoft)回复于 2004-07-19 17:28:42 得分 0

mark一下~~~Top

16 楼jimmyzzbb(口是心非)回复于 2004-07-23 20:43:25 得分 0

AT   就是   接收终端  
  AN   就是   接入网Top

17 楼nmywg(cpu)回复于 2004-07-23 23:15:51 得分 0

关注Top

18 楼jacksyh(杭杭)回复于 2004-07-24 12:50:13 得分 0

期待更多!Top

19 楼jimmyzzbb(口是心非)回复于 2004-07-25 19:45:25 得分 0

现在网上的电脑发短信经历的流程一般如下  
              PTSN   --->   MSC   -->   BSC   -->BTS   -->   MS  
   
  至于手机控制电脑主要看电脑是在网络的什么位置,最简单的就是MS经过一个空口协议就可以控制电脑。  
              MS   --->BSS   --->   ComputerTop

20 楼playzwd(沙漠绿洲)回复于 2004-07-28 12:52:14 得分 0

太~~~~~~~~~~太~~~~~~~~~~~~~太容易了Top

21 楼Jasonsystem(梦之子)回复于 2004-08-18 02:38:16 得分 0

哪位高手能给出详细的编写流程的相关的程序呢!?   小弟是个初哥希,望大家多多指教!Top

22 楼awjx(啦啦啦)回复于 2004-08-18 11:31:23 得分 0

怎么没有人用MSCOMM32.OCX控件呢?  
  听说是最简单的方法,最近也在研学习。  
  不会真的都在用WIN   API写串口吧!Top

23 楼zzhouj(Justin)回复于 2004-08-19 10:53:55 得分 0

可以绕过手机的AT层,直接对手机的UART进行编程,即可实现通过手机操作PC。但是实际应用的情形往往相反,一般是PC控制手机或PDA的操作。Top

24 楼wx3435720(Libra)回复于 2004-08-22 18:13:54 得分 0

具体的关于AT的内容,你可以参看GSM07.07  
  还有不是手机支持的命令不同,而是手机对整个  
  命令集合的支持程度不一  
  而且有些手机还扩展了标准的指令集合  
  Top

25 楼zhangjiechen()回复于 2004-08-24 12:51:19 得分 0

我用J2ME实现了用手机控制电脑开关机很简单,在电脑上开一个WEB服务器,用HTTP协议使手机连接互联网访问电脑,WEB服务器解析手机命令就可以控制本机,服务器端用JSP/Servlet或ASP都可以。  
  主要代码可以给你  
  手机端  
  package   controlitem;  
   
  import   java.lang.*;  
  import   java.io.*;  
  import   java.util.*;  
  import   javax.microedition.io.*;  
   
   
  public   class   ConnectionManager  
  {  
      private   HttpConnection   con;  
      private   InputStream   is;  
      private   OutputStream   os;  
      private   String   baseurl   =   "http://10.1.49.51:7001/Mobile_Server/servlet1?cmd=";  
      private   String   ua;  
      private   String   locale;  
      private   String   msg;  
      private   String   user;  
      private   String   password;  
   
      public   ConnectionManager()  
      {  
        System.out.println("初始化ConnectionManager");////////////////////  
        StringBuffer   sb   =   new   StringBuffer(60);  
        sb.append("configuration/");  
        sb.append(System.getProperty("microedition.configuration"));  
   
        String   prof   =   System.getProperty("microedition.profiles");  
        System.out.println("prof   is   "   +   prof);////////////////////  
   
        int   i   =   0,j   =   0;  
        while((j   =   prof.indexOf('   ',i))!=   -1)  
        {  
            sb.append("   Profiles/");  
            sb.append(prof.substring(i,j));  
            i   =   j   +   1;  
        }  
   
        sb.append("   Profile/");  
        sb.append(prof.substring(i));  
        ua   =   sb.toString();  
   
        System.out.println("sb   is"   +   sb   +   "ua   is   "   +   ua);////////////////////////  
        locale   =   System.getProperty("microedition.locale");  
   
        System.out.println("locale   is"   +   locale);///////////////////////  
        if(locale   ==   null)  
        {  
            locale   =   "en-UD";  
        }  
        System.out.println("初始化完毕");///////////////////////////  
      }  
   
   
      byte[]   Progress()//处理连接,获得回复信息  
      {  
          byte[]   data   =   null;  
          try  
          {  
              open();//打开连接  
   
              int   n   =   (int)con.getLength();//响应信息的长度  
   
              if(n>0)  
              {  
                  int   bytesread   =   0;  
                  data   =   new   byte[n];  
                  for(int   offset   =   0;offset<n;offset   +=   bytesread)  
                  {  
                      bytesread   =   is.read(data,offset,n-bytesread);  
                  }  
              }  
          }  
          catch(IOException   ioe)  
          {  
              System.out.println("error   here!!!!!!   "   +   ioe.getMessage());  
          }  
          finally  
          {  
              try  
              {  
                  if(con!=   null)  
                  {  
                      con.close();  
                  }  
                  if(os   !=   null)  
                  {  
                      os.close();  
                  }  
                  if(is   !=   null)  
                  {  
                      is.close();  
                  }  
              }  
              catch(IOException   ioe)  
              {  
                  System.out.print("error   here   @@@@@@@@@@");  
              }  
              return   data;  
          }  
      }  
   
   
      private   void   open()   throws   IOException  
      {  
          int   status   =   -1;  
          String   url   =   baseurl;  
          String   auth   =   null;  
          is   =   null;  
          os   =   null;  
          con   =   null;  
   
          while(con   ==   null)//一直循环直到连接被建立  
          {  
              System.out.println("开始打开连接!url="   +   url   );////////////////////////  
              con   =   (HttpConnection)Connector.open(url);  
   
              con.setRequestMethod(HttpConnection.POST);  
              con.setRequestProperty("User-Agent",ua);  
              con.setRequestProperty("Accpet-Language",locale);  
              con.setRequestProperty("Content-Type","text/plain");  
              con.setRequestProperty("Accept","text/plain");  
   
              if(user   !=   null&&password   !=   null)  
              {  
                  con.setRequestProperty("Authorization","Basic   ");//此处应该加入64base的用户名和密码   +BasicAuth.encode(user,password)  
              }  
   
              os   =   con.openOutputStream();//打开输出流会清空所有的响应头  
   
              System.out.println("输出流已打开"   );////////////////////  
              os.write(msg.getBytes());//把消息写入输出流  
              os.close();  
              os   =   null;  
              System.out.println("输出流已关闭");////////////////////  
   
              status   =   con.getResponseCode();//检查返回的状态码  
   
              System.out.println("status   is   "   +   status);/////////////////  
              switch(status)  
              {  
                  case   HttpConnection.HTTP_OK://成功  
                            break;  
                  case   HttpConnection.HTTP_TEMP_REDIRECT:  
                  case   HttpConnection.HTTP_MOVED_TEMP:  
                  case   HttpConnection.HTTP_MOVED_PERM:  
                      url   =   con.getHeaderField("location");//重定向,取得新的目标地址  
                      con.close();  
                      con   =   null;  
                      break;  
                  default://错误,抛出一个异常  
                      con.close();  
                      throw   new   IOException("Response   status   not   OK:"   +   status);  
              }  
          }  
          is   =   con.openInputStream();//打开输入流。使调用者可以读取响应信息  
      }  
   
   
      void   setMsg(String   s)  
      {  
          msg   =   s;  
      }  
   
   
      void   setUser(String   s)  
      {  
          user   =   s;  
      }  
   
   
      void   setPassword(String   s)  
      {  
          password   =   s;  
      }  
   
      void   appendUrl(String   append)  
      {  
          baseurl   +=   append;  
      }  
   
   
  }  
   
   
  服务器端(Servlet)  
   
  package   mobile_server;  
   
  import   javax.servlet.*;  
  import   javax.servlet.http.*;  
  import   java.io.*;  
  import   java.util.*;  
   
  public   class   Servlet1   extends   HttpServlet  
  {  
      String   execCmd;  
   
      public   void   doPost(HttpServletRequest   request,   HttpServletResponse   response)   throws   ServletException,   IOException  
      {  
          String   cmd=request.getParameter("cmd");  
          if(cmd   ==   null)  
                cmd   =   "nocmd";  
          if(cmd.equals("sendinfo"))  
          {  
                String   ip   =   request.getParameter("ip");  
                String   info   =   request.getParameter("info");  
                if(info   ==   null||info.length()==0)   info="";  
   
                execCmd   =   "net   send   "   +   ip   +   "   "   +info;  
                System.out.println("execCmd   is   "   +   execCmd);  
                Runtime   time   =   Runtime.getRuntime();  
                time.exec(execCmd);  
       
          }  
          else   if(cmd.equals("rebootComputer"))  
          {  
                execCmd   =   "tsshutdn   /reboot";  
                Runtime   time   =   Runtime.getRuntime();  
                time.exec(execCmd);  
          }  
          else   if(cmd.equals("shutdownComputer"))  
          {  
              execCmd   =   "tsshutdn";  
              Runtime.getRuntime().exec(execCmd);  
          }  
          else  
          {  
              System.out.print("no   cmd!");  
          }  
   
      }  
   
   
  }  
   
  Top

26 楼soil(土土)回复于 2004-08-27 21:44:15 得分 0

http://ms.mblogger.cn/soil/category/1984.aspxTop

27 楼willstar(蓝色稻草人)回复于 2004-09-21 13:07:07 得分 0

upTop

28 楼LIJUNCN()回复于 2004-09-30 10:46:04 得分 0

 
  up  
  ?????Top

相关问题

  • 手机和电脑连接不正常!!!
  • 手机发邮件和电脑发邮件有什么不同?????????????????????????
  • 初学发问:Exchange 和 SQLserver 怎样互通信息?
  • asp和jsp有什么办法可以互通参数值?
  • Pocket_PC和PC机相互通讯的问题
  • winxp 和win98工作组不能互通的问题
  • 请问怎么用javascript和服务器控件相互通信.
  • 与VC互通
  • 在OICQ上怎样分辨对方是在用手机和你聊还是用电脑和你聊?
  • 求救:怎么使用Motorola998++手机和电脑通过串口发短信?请大家多帮忙呀!

关键词

  • 电脑
  • 控制
  • 手机
  • 指令
  • 蓝牙
  • 终端
  • 计算机
  • 软件
  • 串口
  • 命令

得分解答快速导航

  • 帖主:LIJUNCN

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo