SMS(Short Messaging Service)即短消息业务,是由Etsi所制定的一个规范(GSM 03.40 和 GSM03.38)。当使用其7-bits编码时,可以发送最多160个字符;使用8-bit编码,最多可以发送140个字符,通常无法直接通过手机显示;还有用16-bit编码时,最多70个字符,被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。
目前程序中发送短信大致有三种途径:
1、 向当地的电信部门申请网关,不需要额外的设备,利用对方提供的API调用程序发送短信,适用于大型的通信公司。
2、 借助像GSM MODEM之类的设置(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人。要实现这种方式必须理解串口通信、AT指令、短信编码、解码。
3、 利用网站实现,由网站代发短信数据,对网站依赖性太高,对网络的要求也比较高,不适于进行项目开发。
本文选择了AT命令方式作为讲解。
所谓AT,即Attention。AT命令集是从Terminal Equipment或Data Terminal Equipment向Terminal Adapter或Data Circuit Terminating Equipment发送的,通过TA、TE发送AT命令来控制Mobile Station的功能与GSM网络业务进行交互。我们可以通过AT命令进行呼叫短信、电话本、数据业务、补充业务、传真等方面的控制。由于AT指令操作是非常之简单的,我们完全可以自己写组件完成相关操作,而且针对联通、移动、小灵通等不同的服务需求,自制组件反而更容易控制及扩充。
在Java编程中可以通过Java Comm进行手机与电脑的串口通讯,并通过AT指令控制手机操作。在Google code上有个SMSLib项目,是一个以AT指令实现手机操作的组件(http://code.google.com/p/smslib/downloads/list)。
SMSLib使用示例如下:
public class test {
public static void main(String[] args) {
Service srv = new Service();
OutboundMessage msg = new OutboundMessage("account", "content");
//com 串口名,比如COM1或者/dev/ttyS1
//1234 端口速度,WAVECOM是9600
SerialModemGateway gateway = new SerialModemGateway("SMSATCommandSubscriptionImpl", "com",
1234, null, null, srv.getLogger());
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("0000");
gateway.setOutboundNotification(new IOutboundMessageNotification() {
public void process(String string, OutboundMessage outboundMessage) {
}
});
srv.addGateway(gateway);
try {
srv.sendMessage(msg);
srv.stopService();
} catch (Exception e) {
e.printStackTrace();
}
}
}
sms在linux和win上的部署
主要就是要了解开发smsLib需要和平台交流,因为需要通过不同的方式访问com端口 还好的是现在SMSLib已经有比较完成的接口,具体信息可以看Linux部署开发包及说明文档
重要的参考http://blog.chinaunix.net/u2/62694/showart_492794.html
分享到:
相关推荐
【标题】"SMSLIB短信猫发送短信"是一个基于Java编程语言的Eclipse项目,它利用了SMSLIB组件来实现通过串口与短信猫设备进行通信,从而实现短信的发送功能。这个项目对于需要进行批量短信发送或者自动化短信通知的...
【SMSLib实现Java短信收发的功能】 SMSLib是一个开源的Java库,专门用于实现通过GSM调制解调器或SMS网关进行短信的发送和接收。它为开发者提供了便捷的API,使得无需深入理解串口通信、AT指令或者SMPP协议等底层...
Java通过手机COM端口发送短信是一项常见的通信技术,主要依赖于特定的库和API来实现。在这个场景中,我们使用的工具是SMSLib,一个开源的Java库,它提供了丰富的功能来处理SMS(短消息服务)的发送、接收以及管理。...
SMSLib是Java编程语言中的一款强大且开源的短信收发库,主要被用来与短信猫设备进行交互,实现通过电脑或服务器发送和接收短信。在标题"SMSLib-Java-v2.1.0.zip_SMSLIB_SMSlib CServi_java 短信收发_短信收发_短信猫...
总的来说,"SMSLIB+RXTX 短信猫开发模块"是一个强大的工具,可以帮助开发者快速构建基于Java的短信应用,无论是简单的短信发送,还是复杂的短信服务系统,都可以通过这个模块高效地实现。其跨平台性和完整的库支持,...
Java 使用SMSLib通过串口通讯收发短信是一种常见的在Java应用程序中实现短信功能的方法,尤其适用于需要集成到系统中批量发送或接收短信的场景。SMSLib是一个强大的Java库,允许开发者通过兼容的GSM调制解调器或GSM...
首先,`smslib`是一个开源的、跨平台的Java库,它提供了通过各种方式(如GSM调制解调器、SMS网关等)发送和接收短信的功能。它的设计目的是使开发者能够轻松地集成短信服务到自己的应用程序中。使用`smslib`,你可以...
Java手机发短信功能通常涉及到的是Java的SMS库,如`smslib`,这是一个开源的库,专门用于通过GSM调制解调器或SMS网关发送和接收短信。`smslib-v3.4.5`是该库的一个特定版本,可能包含了对先前版本的改进和修复。 `...
短信猫是一种硬件设备,通常连接到计算机的串行端口或USB端口,模拟手机SIM卡,使计算机能够通过GSM网络发送和接收短信。smslib支持与这些短信猫进行通信,使得开发者无需深入了解底层通信协议,就能实现短信功能。 ...
1. **短信发送**:smslib支持向全球各地的手机设备发送文本、彩信甚至二进制数据。它支持多种协议,如GSM modem、GSM手机、蓝牙设备、TCP/IP网关等,覆盖了广泛的短信服务提供商。 2. **短信接收**:smslib能够监听...
SMSLIB和RXTX是两个在Java环境中实现短信通信的重要库。本文将详细介绍如何使用这两个库来开发短信猫应用,并提供详细的配置步骤。 **SMSLIB** SMSLIB(Short Message Service Library)是一个开源的、基于Java的...
2. **短信接收**:除了发送,smslib还支持监听短信猫,接收来自任何号码的短信,并通过回调函数处理接收到的信息。 3. **多平台兼容**:作为Java库,smslib可以在多种操作系统上运行,包括Windows、Linux和Mac OS等...
2. **短信发送**:学习如何创建SMSMessage对象,设置目标手机号码、短信内容,然后通过smslib的发送方法发送短信。 3. **短信接收**:理解smslib如何监听和处理接收到的短信,以及如何注册回调函数处理接收到的消息...
SMSLib不仅支持发送短信,还能接收并处理来自手机的短信。通过注册监听器,你可以编写回调函数来处理接收到的短信,实现诸如自动回复、数据解析等功能。 6. **错误处理与日志** 库内包含了完善的错误处理机制,当...
总的来说,通过C#实现手机发短信功能涉及到了网络通信、协议解析、设备交互等多个技术领域。这个压缩包中的"Send SMS"可能是源代码文件,包含了实现以上功能的类和方法。深入研究这个源代码,可以更好地理解C#在实现...
- **WAP Push支持**:除了基本的短信服务,SMSLib还支持WAP Push技术,可以发送WAP链接至手机,让用户通过短信浏览网页内容。 - **调度功能**:可以设置定时任务,按预定时间发送短信,这对于提醒服务非常有用。 -...
【smslib comm.jar】是一个基于Java的库,主要用于通过串行接口发送手机短信。这个库是SMSLib的一部分,一个开源的、跨平台的短信服务库,适用于开发人员想要构建能够与移动设备通信的应用程序。SMSLib支持多种通信...
**SMSLib:操作Modem进行手机短信收发** 在IT领域,特别是在移动通信和嵌入式系统中,通过调制解调器(Modem)发送和接收短信是一种常见的通信方式。`SMSLib`是一个功能丰富的开源库,专门设计用于通过GSM调制解调...