📄 cmppclientrequest.java
字号:
import java.lang.*;
import java.net.*;
import java.io.*;
import CMPPRequest;
public class CMPPClientRequest extends CMPPRequest
{
final static int DEFAULT_TIMEOUT = 15000;
//数据包
CMPPPacket m_packet = null;
public CMPPClientRequest(CMPPSynchronizedIO synio,CMPPAsynchronizedIO asynio,CMPPPacket packet)
throws CMPPException
{
super(synio,asynio);
m_packet = packet;
}
public boolean login()
//同步login
{
//生成一个连接
CMPPConnect connect = new CMPPConnect(++ m_asynio.m_nSequenceID);
//设置连接数据
connect.source_addr = "888888";
connect.authenticator_sp = "0123456789abcdef";
connect.version = 0x12;
CMPPConnectResponse response = request(connect,DEFAULT_TIMEOUT);
if(response != null && response.status == 0
&& response.authenticator_ismg.equals("connection is ok"))
//检查状态
{
m_asynio.m_bAuthenticated = true;
return true;
}
m_asynio.m_bAuthenticated = false;
return false;
}
public void logout()
//同步logout
{
//生成一个连接
CMPPTerminate terminate = new CMPPTerminate(++ m_asynio.m_nSequenceID);
request(terminate,DEFAULT_TIMEOUT);
m_asynio.m_bAuthenticated = false;
}
//异步activetest
public void activetest()
throws CMPPException
{
//生成一个连接
CMPPActiveTest activetest = new CMPPActiveTest(++ m_asynio.m_nSequenceID);
//发出异步请求
m_packet = activetest;
startup();
}
protected void OnSubmitResponse(CMPPSubmitResponse response)
//CMPP_SUBMIT响应回调
{
}
protected void OnCancelResponse(CMPPCancelResponse response)
//CMPP_CANCEL响应回调
{
}
protected void OnQueryResponse(CMPPQueryResponse response)
//CMPP_QUERY响应回调
{
}
public void run()
{
m_nStatus = THREAD_RUNNING;
if(isRunning() && m_packet != null)
{
if(m_packet.command_id == CMPPCommandID.CMPP_DELIVER)
//非客户端请求
{
CMPPLog.log("CMPPClientRequest.run : not a client request !",
CMPPLog.LOG_CMPP_CLIENT_REQUEST);
}
//非服务器请求
else if(m_packet.command_id == CMPPCommandID.CMPP_CONNECT ||
m_packet.command_id == CMPPCommandID.CMPP_TERMINATE)
//非异步请求
{
CMPPLog.log("CMPPClientRequest.run : not an asynchronized request !",
CMPPLog.LOG_CMPP_CLIENT_REQUEST);
}
else if(m_asynio.m_bAuthenticated)
//已经通过效验
{
if(m_packet.command_id == CMPPCommandID.CMPP_ACTIVETEST)
{
CMPPActiveTest activetest = (CMPPActiveTest) m_packet;
CMPPActiveTestResponse response = request(activetest,DEFAULT_TIMEOUT);
if(response != null)
{
m_asynio.m_nErrorCount = 0;
}
else
{
m_asynio.m_nErrorCount ++;
}
}
else if(m_packet.command_id == CMPPCommandID.CMPP_SUBMIT)
{
CMPPSubmit submit = (CMPPSubmit) m_packet;
CMPPSubmitResponse response = request(submit,DEFAULT_TIMEOUT);
if(response != null)
{
//响应回调
OnSubmitResponse(response);
}
}
else if(m_packet.command_id == CMPPCommandID.CMPP_CANCEL)
{
CMPPCancel cancel = (CMPPCancel) m_packet;
CMPPCancelResponse response = request(cancel,DEFAULT_TIMEOUT);
if(response != null)
{
//响应回调
OnCancelResponse(response);
}
}
else if(m_packet.command_id == CMPPCommandID.CMPP_QUERY)
{
CMPPQuery query = (CMPPQuery) m_packet;
CMPPQueryResponse response = request(query,DEFAULT_TIMEOUT);
if(response != null)
{
//响应回调
OnQueryResponse(response);
}
}
else
{
CMPPLog.log("CMPPClientRequest.run : unhandled request !",
CMPPLog.LOG_CMPP_CLIENT_REQUEST);
}
}
else
{
CMPPLog.log("CMPPClientRequest.run : unauthorized request !",
CMPPLog.LOG_CMPP_CLIENT_REQUEST);
}
}
m_nStatus = THREAD_STOPPED;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -