电脑和手机互通!

要写一个手机与电脑互通的软件
比如:可以通过电脑写短信并发送,或者用手机控制电脑的开关,等等。。
请问 各位大虾
要写这样的软件该怎样着手呢?
有哪些步骤?
谢谢!
[112 byte] By [LIJUNCN] at [2008-5-24]
# 1
电脑控制手机可以用ETSI制定的标准AT命令,在电脑上实现就是传统的串口编程。手机控制电脑怕不好实现。

MyNetworks-弟大物勃 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 2
一般来讲手机和电脑通讯采用串口或者USB,但不论用哪个,最终都要转换成串口通讯。
对于发送短信这样的功能,采用AT命令即可。
sunwhite at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 3
问一个菜鸟的问题什么叫at呀
renhao110-一笑而过 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 4
对于楼主的问题,电脑写短信发送:串口编程+at指令就可以搞定。
手机控制电脑开关确实。。。。。。。。。很难

at指令是一些串口设备能够读懂的“命令”,可以用at指令来控制这些串口设备完成一定的工作
wunifeng-蛐蛐 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 5
完全可以,不过要安装一个俺的软件才可以。
start001-需要人气!!! at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 6
完全自己搞是不行的;你在手机公司任职是可以的!
surge_diligent at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 7
完全可以自己做,网上有很多资料可找。不过不同的手机AT指令可能有所不同。
tompkins2000-AirHunter at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 8
很简单,分成两部分就是了
1、计算机控制收发短信
2、解析短信命令格式控制计算机

1中看串口编程和短信相关的几个命令就可以了
2中windows相关API,想做的好的话和手机本身没有直接关系

没有什么不行的
# 9
1中看串口编程和短信相关的几个AT命令就可以了
# 10
如果用解释短信消息的形式控制电脑关机,那你得在电脑终端也得连一台移动设备.
这个好处是可以随时随地关机.

还有就是用蓝牙控制,电脑终端得安有蓝牙适配器.一两百.
不过控制距离最远只有二十米.

蓝牙不用money短信...
kejian-御剑飞仙 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 11
请问AT指令咋个用喃?
LIJUNCN at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 12
AT指令集,串口通讯,PDU编解码。

软件及手机通讯COM组件:www.fhxysoft.com/download/ydf_1_full.rar

AT指令集:www.fhxysoft.com/download/at.rar

www.fhxysoft.com
nlnc-风之8号 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 13
手机通过WAP应用执行计算机关机程序就行了,很简单
guo_hai13 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 14
mark一下~~~
upsoft-upsoft at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 15
AT 就是 接收终端
AN 就是 接入网
jimmyzzbb-口是心非 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 16
期待更多!
jacksyh-杭杭 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 17
现在网上的电脑发短信经历的流程一般如下
PTSN ---> MSC --> BSC -->BTS --> MS

至于手机控制电脑主要看电脑是在网络的什么位置,最简单的就是MS经过一个空口协议就可以控制电脑。
MS --->BSS ---> Computer
jimmyzzbb-口是心非 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 18
太~~~~~~~~~~太~~~~~~~~~~~~~太容易了
playzwd-沙漠绿洲 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 19
哪位高手能给出详细的编写流程的相关的程序呢!? 小弟是个初哥希,望大家多多指教!
Jasonsystem-梦之子 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 20
怎么没有人用MSCOMM32.OCX控件呢?
听说是最简单的方法,最近也在研学习。
不会真的都在用WIN API写串口吧!
awjx-啦啦啦 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 21
可以绕过手机的AT层,直接对手机的UART进行编程,即可实现通过手机操作PC。但是实际应用的情形往往相反,一般是PC控制手机或PDA的操作。
zzhouj-Justin at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 22
具体的关于AT的内容,你可以参看GSM07.07
还有不是手机支持的命令不同,而是手机对整个
命令集合的支持程度不一
而且有些手机还扩展了标准的指令集合
wx3435720-Libra at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 23
我用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!");
}

}

}

zhangjiechen at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 24
http://ms.mblogger.cn/soil/category/1984.aspx
soil-土土 at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...
# 25

up
???
LIJUNCN at 2007-10-23 > top of Msdn China Tech,移动平台,开发平台...