# sms-client
**Repository Path**: ajax2018/sms-client
## Basic Information
- **Project Name**: sms-client
- **Description**: No description available
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2022-03-17
- **Last Updated**: 2022-03-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 技术问题请加QQ群

群名称:cmppGate短信
群 号:770738500
# 一个基于[SMSGate框架](https://github.com/Lihuanghe/SMSGate) 的纯发送短信客户端库,使用简单
# How To Use
```xml
com.chinamobile.cmos
sms-client
0.0.1
```
- `如何发送短信?`
参考test包里的测试用例 :
```java
CMPPClientEndpointEntity client = new CMPPClientEndpointEntity();
client.setId("client");
// client.setLocalhost("127.0.0.1");
// client.setLocalport(65521);
client.setHost("127.0.0.1"); //服务器IP
client.setPort(37890); //端口
client.setChartset(Charset.forName("utf-8"));
client.setGroupName("test");
client.setUserName("901783"); //企业代码
client.setPassword("ICP001"); //密码
// client.setProxy("http://username:password@ipaddress:port"); //http代理
// client.setProxy("socks4://username:password@ipaddress:port"); //socks4代理
// client.setProxy("socks5://username:password@ipaddress:port"); //socks5代理
client.setMaxChannels((short) 2); //最大连接数
client.setVersion((short) 0x20); //协议版本
client.setWriteLimit(20); //每个连接的最大发送速度,单位 拆分短信后 条/秒
client.setReSendFailMsg(false);
client.setSupportLongmsg(SupportLongMessage.BOTH);
//SmsClientBuilder 适合和单例 ,一个通道账号只build一次
SmsClientBuilder builder = new SmsClientBuilder();
final SmsClient smsClient = builder.entity(client)
.keepAllIdleConnection() //保持空闲连接,以便能接收上行或者状态报告消息
.window(32) //设置发送窗口
.receiver(new MessageReceiver() {
public void receive(BaseMessage message) {
logger.info("receive : {}",message.toString());
}}).build();
Future future = null;
//发送5000条短信
for (int i = 0; i < 5000; i++) {
future = executor.submit(new Runnable() {
public void run() {
//new 一个短信 Request对象
CmppSubmitRequestMessage msg = new CmppSubmitRequestMessage();
msg.setDestterminalId(String.valueOf(System.nanoTime()));
msg.setSrcId(String.valueOf(System.nanoTime()));
msg.setLinkID("0000");
msg.setMsgContent("老师好,接工信部投诉");
msg.setRegisteredDelivery((short) 1);
msg.setServiceId("10086");
CmppSubmitResponseMessage response;
try {
//调用send方法发送
response = (CmppSubmitResponseMessage) smsClient.send(msg);
//收到Response消息
} catch (Exception e) {
logger.info("send ", e);
}
}
});
}
```
- `如何发送长短信?`
默认已经处理好长短信了,就像发送普通短信一样。
- `如何接收短信?`
参考test包里的测试用例 : 创建 Builder的时候注册 `MessageReceiver`类
- `使用 http 或者 socks 代理`
SmsGate支持HTTP、SOCKS代理以方便在使用代理访问服务器的情况。代理设置方式:
```
// 无username 和 password 可写为 http://ipaddress:port
client.setProxy("http://username:password@ipaddress:port"); //http代理
client.setProxy("socks4://username:password@ipaddress:port"); //socks4代理
client.setProxy("socks5://username:password@ipaddress:port"); //socks5代理
```
# TODO