📄 recvthread.java
字号:
/*
* 创建日期 2004-6-9
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package cmpp2;
import java.util.*;
import java.text.DateFormat;
import com.commerceware.cmpp.*;
/**
* @author Administrator
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class RecvThread extends Thread
{
ArrayList inal;
boolean instop;
Recvmsg rm;
final CMPP p = new CMPP();
final conn_desc con = new conn_desc();
cmppe_result cr = new cmppe_result();
String testorg, testdest, testmsg;
Date date = new Date();
DateFormat shortDateFormat =
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
DateFormat mediumDateFormat =
DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
int recon;
public static void main(String[] args)
{
}
public void initRecv(ArrayList inal, boolean instop)
{
this.inal = inal;
this.instop = instop;
}
public void run()
{
recon = 0;
System.out.println("recv start");
String s = "SP 测试";
char test[] = new char[10];
byte short_msg[] = new byte[150];
byte buf[] = new byte[40];
byte b1[] = new byte[10];
cmppe_submit sub = new cmppe_submit();
cmppe_submit_result res = new cmppe_submit_result();
cmppe_cancel can = new cmppe_cancel();
// cmppe_result cr = new cmppe_result();
cmppe_deliver_result rs = new cmppe_deliver_result();
try
{
p.cmpp_connect_to_ismg("211.140.2.202", 7890, con);
System.out.println("connect ok");
p.cmpp_login(con, "(企业代码)", "(密码)", (byte) 1, 0x12, 0105121212); //
System.out.println("login ok");
readPa();
sleep(1000);
TestThread tt = new TestThread();
tt.initTest(p, con, false);
tt.start();
while (!instop)
{
try
{
if (instop)
{
p.cmpp_active_test(con);
}
readPa();
sleep(10);
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
System.out.println("recvThread have a exception");
try
{
System.in.read();
}
catch (Exception e1)
{
}
}
}
p.cmpp_logout(con);
readPa();
tt.stopTest();
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
System.out.println(" recv Thread out have a exception");
try
{
System.in.read();
}
catch (Exception e1)
{
}
}
}
public void stopRecv()
{
instop = true;
}
public void readPa()
{
try
{
cr = p.readResPack(con);
switch (cr.pack_id)
{
case CMPP.CMPPE_NACK_RESP :
System.out.println("get nack pack");
break;
case CMPP.CMPPE_LOGIN_RESP :
cmppe_login_result cl;
cl = (cmppe_login_result) cr;
System.out.println("recv login resp: STAT = " + cl.stat);
break;
case CMPP.CMPPE_LOGOUT_RESP :
System.out.println("recv logout resp: STAT = " + cr.stat);
break;
case CMPP.CMPPE_SUBMIT_RESP :
cmppe_submit_result sr;
sr = (cmppe_submit_result) cr;
System.out.println("recv submit resp: STAT = " + sr.stat);
break;
case CMPP.CMPPE_DELIVER :
byte msg[], src_addr[], dest_addr[];
System.out.println("5: STAT = 0");
cmppe_deliver_result cd = (cmppe_deliver_result) cr;
p.cmpp_send_deliver_resp(con, cd.seq, cd.stat);
msg = cd.short_msg;
src_addr = cd.src_addr;
dest_addr = cd.dst_addr;
int length = (int) cd.sm_len;
int code = (int) cd.data_coding;
String msgs = "", srcaddr = "", destaddr = "";
System.out.println(code);
if (code == 8)
{
msgs = new String(msg, "UTF-16");
for (int i = 0; i < src_addr.length; i++)
{
if (src_addr[i] != 0)
{
srcaddr += (char) src_addr[i];
}
else
{
break;
}
}
for (int i = 0; i < dest_addr.length; i++)
{
if (dest_addr[i] != 0)
{
destaddr += (char) dest_addr[i];
}
else
{
break;
}
}
//srcaddr = new String(src_addr, "ISO8859-1");
//destaddr = new String(dest_addr, "ISO8859-1");
System.out.println(code + " " + length);
System.out.println("recv_msg=" + msgs);
System.out.println(
"recv_orgaddr=" + srcaddr + srcaddr.length());
System.out.println(
"recv_destaddr=" + destaddr + destaddr.length());
rm = new Recvmsg();
rm.setContent(msgs.substring(0, length));
rm.setOrgaddr(srcaddr);
rm.setDestaddr(destaddr);
inal.add(rm);
}
else
{
if (length < 1)
break;
for (int i = 0; i < msg.length; i++)
if (src_addr[i] != 0)
{
msgs += (char) msg[i];
}
else
{
break;
}
if (msgs.trim().length() == 0)
break;
for (int i = 0; i < src_addr.length; i++)
{
if (src_addr[i] != 0)
{
srcaddr += (char) src_addr[i];
}
else
{
break;
}
}
for (int i = 0; i < dest_addr.length; i++)
{
if (dest_addr[i] != 0)
{
destaddr += (char) dest_addr[i];
}
else
{
break;
}
}
//srcaddr = new String(src_addr, "ISO8859-1");
//destaddr = new String(dest_addr, "ISO8859-1");
System.out.println(code + " " + length);
System.out.println("recv_msg=" + msgs);
System.out.println("除空各的长度" + msgs.trim().length());
System.out.println(
"recv_orgaddr=" + srcaddr + srcaddr.length());
System.out.println(
"recv_destaddr=" + destaddr + destaddr.length());
rm = new Recvmsg();
rm.setContent(msgs);
rm.setOrgaddr(srcaddr);
rm.setDestaddr(destaddr);
inal.add(rm);
}
//cmpp_send_deliver_resp(con,cd.seq,cd.stat);
break;
case CMPP.CMPPE_ACTIVE_RESP :
//System.out.println("active resp"+shortDateFormat.format(date));
date = new Date();
System.out.println(
"recv active resp" + mediumDateFormat.format(date));
break;
default :
break;
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
System.out.println("have a exception");
try
{
sleep(10000);
p.cmpp_logout(con);
readPa();
p.cmpp_connect_to_ismg("211.140.2.202", 7890, con);
System.out.println("connect ok");
p.cmpp_login(con, "(企业代码)", "(密码)", (byte) 1, 0x12, 0105121212);
System.out.println("login ok");
readPa();
}
catch (Exception ex)
{
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -