扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年9月22日
关键字:
在本页阅读全文(共2页)
按照如下的步骤来完成服务器的编码和部署:
1.从SMSLib网站下载SMSLib代码。下载时,确保你下载的是SMSLib-Java-v1.0.1.zip。SMSLib for Java可以跟Java通信API或RxTx一起使用。最近,Sun撤消了了对Java通信API Windows版的支持,所以使用RxTx会更好。但如果你已经有了Java通信API,你同样可以用它和SMSLib一起运行。在这篇文章中,我将详述以上两种运行实例程序的方法。
2.以Java通信API 2.0作为开始,首先,确保你已经正确安装了API。解压javacomm20-win32.zip。在commapi子目录中,你将找到如下文件:
 javax.comm.properties
 win32com.dll
 comm..jar
把javax.comm.properties拷贝到你的Java运行时环境的lib目录中。把win32com.dll拷贝到你的JRE的bin目录中。当运行任何使用SMSLib的程序时,确保comm.jar在classpath中。
为了保证Java通信API被正确的安装了,从命令框中进入到commapi\samples\BlackBox目录中。按如下方式设置PATH变量:以我为例,JRE的家目录为C:\j2sdk1.4.2_03\jre。根据你的JRE设置做相应的改变。
设置PATH=.;c:\j2sdk1.4.2_03\jre\bin;。现在,使用如下命令来运行Java 黑盒程序:
java -classpath .;../../comm..jar;BlackBox.jar; BlackBox。
如果Java通信API被正确的安装了,那么如图15所示,会出现一个显示你机器的可用串口(COM端口)的Swing窗口。关闭窗口之后,命令框将会包含一些跟你可用的COM端口相关的行,如下面的示例命令提示输出所示。记住,依赖于你的PC上的可用端口,Swing窗口和命令行提示的内容可能会有变化。但重要的是,如果你能够看到GUI和在命令提示框中的如下行(就象下面所示),你可以假设Java通信API已经正确安装了。在这个测试之后,关闭Swing窗口来中止黑盒程序。
图15. 测试Java通信API的安装
实例命令提示框输出:
COM1: PORT_OWNED
COM2: PORT_OWNED
Closing port 1 (COM2)
Closing COM2
Closing port 0 (COM1)
Closing COM1
3.现在,是时候把GSM调制解调器连接到你的电脑上了。我使用一部Nokia 6600移动电话作为GSM调制解调器。Nokia 6600没有串口连接器(COM端口连接器)。但是,它提供了红外线技术连接到电脑,然后作为GSM调制解调器。如果你有一部有串口直接连接器的电话,那样使用起来会更简单。一般地, 实际的GSM调制解调器会提供串口连接器。但是如果你的设备缺少串口连接器,但包含一个内置的GSM调制解调器并能使用红外线或蓝牙技术连接,这种选择也能起作用。
为了在没有物理COM端口的情况下,在功能上实现COM端,你必须将一个虚拟的COM端口映射到你的红外线或蓝牙连接上。SMSLib需要一个兼容的GSM电话或GSM调制解调器。如果提供了调制解调器的能力,大多数GSM电话都能被使用。SMSLib使用串行连接(物理或模拟,比如蓝牙,红外线,USB等)来与GSM调制解调器通信。通过Nokia 6600, 你可以使用SMSLib来发送SMS消息,但是因为Nokia 6600把传入的消息储存在记忆卡里而不是SIM卡中,使用这种模式将不能接受到这些消息。同样,Nokia 6600不允许从记忆卡中使用AT指令来读取消息。但是,我们仅仅需要发送SMS消息来激活我们的MIDlet,Nokia 6600能够成功的完成这些(不需要接收SMS消息)。对于使用红外线或蓝牙技术连接的电话来说,最重要的是将红外线或蓝牙连接映射到一个虚拟COM端口。参考你的移动电话的文档,查明它是否支持虚拟COM端口映射。
以我为例,我在我的PC上安装了Nokia PC 套件。为了从我的PC连接Nokia 6600,我使用一个外部USB红外适配器。因此,为了这种情况,我也在PC上安装了红外线驱动。
现在,我用PC上的USB端口连接到外部红外适配器。在Nokia 6600设备上,我选择菜单,然后连接,然后调制解调器。通过红外线连接的选项在调制解调器下面。现在,我选择选项“连接”,并把移动电话放在红外适配器的有效范围之内。
4.下一步是验证从PC,我们能够使用AT指令访问GSM调制解调器。为此,选择开始菜单,然后程序,然后附件,然后通信,然后超级终端。会打开一个对话框,并请求一个逻辑名称。提供任何你愿意提供的名字。为了方便,我提供名字“GSM Modem”。选择OK。
图16. 打开超级终端
5.另一个弹出窗口出现。在使用连接的下拉菜单中,选择COM端口名称(虚拟的或实际的),GSM调制解调器将通过此端口连接到PC。以我为例,是COM4。
图17. 在超级终端中选择COM端口
6.在下一个对话框中(COM端口的属性),只需单击OK。
7.现在,你会被带到一个窗口,你将在此窗口中输入一些命令(以我们为例,我们将输入AT指令)。输入如下命令来测试连通性-但是记住,当你输入指令的时候,不会在控制台中写入任何东西:AT+CPMS=?。
要点:不要在超级终端中输入任何未知的命令。这可能会永久性损坏你的移动设备或擦去所有的数据。
如果一切顺利,你将能看到一些输出,如图18所示。输出可能会不尽相同,但是没有输出,输出错误,或终端没有响应都代表这连通性的错误。
图18. 在超级终端中执行AT指令
8.现在从呼叫菜单,使用断开连接命令从超级终端断开连接。
9.完成了如上的步骤后,我们可以准备写Java示例程序了。此程序将发送SMS消息到我们刚才配置的的GSM调制解调器的指定端口上:
import org.smslib.*;
public class SendMessageWithPortsSMSLib {
public static void main(String[] args) {
CService srv = new CService("COM4", 9600, "", "");
System.out.println("SendMessage(): sample application.");
System.out.println(" Using " + srv._name + " v" + srv._version);
try {
srv.setSimPin("0000");
srv.connect();
srv.setSmscNumber("");
COutgoingMessage msg =
new COutgoingMessage("+9198301...", "Message from smslib API.");
msg.setMessageEncoding(CMessage.MESSAGE_ENCODING_7BIT);
msg.setSourcePort(0);
msg.setDestinationPort(50001);
srv.sendMessage(msg);
srv.disconnect();
}
catch (Exception e) {
e.printStackTrace();
}
System.exit(0);
}
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者