网站首页

家园论坛

老版论坛

家园博客

业界新闻

技术文档

下载中心

速查中心

图片中心

硬件资讯
上一篇:JAVA实用技巧:定时执行任务的三种方法 下一篇:Java 泛型的理解与等价实现
J2EE--关于用JAVA开发短信方面的知识

来源: 作者: 添加日期:2007-11-9 22:29:29 点击次数:
现在流行的网络业务莫过于短信了.网易新浪等都因此而盈利,股价上涨.我凭自己的经验和公司支持,也就

乘着东风来研究一下了!

首先,你要选择一台移动或者联通的短信服务器做你们的发送短信接口.这是最关键的一步,也是最底层的,

当然这是需要much money的,呵呵.没办法!现实了点....

然后你就是在连接接口的服务器做技术了.用JAVA 的 SOCKET 来监听客户端的SOCKET,当然这是需要一定的

难度,和普通是有很多的区别,例如每秒钟可以同时接受3000条SOCKET... ...,要进行客户端的认证.要进行数据

流转输的加密... ...


最后就是来处理客户端的发送SOCKET了,其实他们传输都是字节Byte...


public class Client
{
//构造函数
public Client()
{
connectStatus = false;
loginStatus = false;
default_ip = "";
default_port = 0;
default_user = "";
default_password = "";
connection = null;
input = null;
out = null;
binput = null;
}
//连接函数

public boolean connect(String ip, int port)
{
boolean result = false;
if(ip == null || ip.indexOf(".") < 1)
ip = default_ip;
if(port < 1)
port = default_port;
try
{
connection = new Socket(ip, port);
input = connection.getInputStream();
binput = new BufferedInputStream(input);
out = connection.getOutputStream();
result = true;
connectStatus = true;
default_ip = ip;
default_port = port;
}
catch(Exception e)
{
result = false;
}
return result;
}

//登录函数



public int login(String userName, String password)
{
int loginRes = -1;
if(!connectStatus)
return 1;
if(userName == null || userName.trim().equals(""))
return 24;
byte loginData[] = new byte[43];
setIntData(43, loginData, 0);
setIntData(1, loginData, 4);
setIntData(1, loginData, 8);
userName.getBytes(0, userName.length(), loginData, 12);
password.getBytes(0, password.length(), loginData, 22);
loginData[38] = 1;
setTime((new Date()).getTime() / (long)1000, loginData, 39);
try
{
out.write(loginData);
out.flush();
byte rec[] = new byte[30];
char ret = '\0';
int i = 0;
do
{
if(i >= 400)
break;
if(binput.available() > 0)
{
input.read(rec, 0, 30);
ret = (char)rec[12];
break;
}
Thread.sleep(50L);
i++;
} while(true);
if(ret == 'T')
{
loginStatus = true;
default_user = userName;
default_password = password;
int k = 0;
return k;
}
loginRes = 1;
}
catch(Exception e)
{
int j = 1;
return j;
}
return loginRes;
}

//发送函数



public int submit(String servicer_id, int msg_type, int status_report, String src_addr, String 

dest_addr, String schedule, String expire, 
int msg_fmt, byte msg_content[], String fee_type, String fee_code, String fee_mobile, 

本新闻共2页,当前在第1页  1  2  

 
设为首页 | 加入收藏 | 业务办理 | 友情链接 | 论坛版面 | 浙ICP备07502118号 |