📄 receiveserveryx.java
字号:
package com.wayout.wayoutsp.operation.packageYX;
/**
* <p>Title: </p>
* <p>Description: 短信互动平台</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: wayoutcom</p>
* @author dufs@wayoutcom.com
* @version 1.0
*/
import java.net.*;
import java.io.*;
import java.util.*;
import com.wayout.wayoutsp.publics.*;
import com.wayout.wayoutsp.operation.*;
public class receiveServerYX
extends Thread {
static final int serverPort = 1121; //服务端端口
static final String clientIp = "134.159.120.43"; //对方服务端端口
private ServerSocket mysvrsock; //本地服务socket
private boolean myShutdownFlag = false; //管理器关闭标志
public static Thread svrCmppThread; //服务线程
public receiveServerYX() {
setupCmppServer(serverPort);
}
/**
*
* @param port
* @return
*/
public boolean setupCmppServer(int port) {
try {
mysvrsock = new ServerSocket(port, 200);
svrCmppThread = new Thread(super, "TBServerThread");
svrCmppThread.start();
return true;
}
catch (Exception e) {
System.out.println("setupTBServer Exception" + e);
PublicConstants.writeLog.info("setupTBServer Exception" + e);
return false;
}
}
/**
* 主函数
*/
public void run() {
int num = 1;
try {
int deliverNum = 0;
while (!myShutdownFlag) {
Socket socket = mysvrsock.accept();
if (socket.getInetAddress().getHostAddress().equals(clientIp)) {
ChildThreadDeliver thread1 = new ChildThreadDeliver(socket);
thread1.start();
}
}
mysvrsock.close(); //out of while
}
catch (Exception e2) {
System.out.println("setup server serverIp Exp::" + e2.toString());
PublicConstants.writeLog.info("setup server serverIp Exp::" + e2.toString());
try {
mysvrsock.close();
sleep(60 * 1000);
setupCmppServer(serverPort);
}
catch (Exception e3) {}
}
}
}
//
class ChildThreadDeliver
extends Thread {
private Socket conn;
private InputStream myinputstream;
private OutputStream myoutputstream;
public DataInputStream dataInStream;
public DataOutputStream dataOutStream;
private short headCmdID;
public ChildThreadDeliver(Socket sockets) {
conn = sockets;
}
public void run() {
try {
myinputstream = conn.getInputStream();
myoutputstream = conn.getOutputStream();
dataInStream = new DataInputStream(myinputstream);
dataOutStream = new DataOutputStream(myoutputstream);
}
catch (Exception e) {
System.out.println("ChildThreadDeliver(Socket): " + e.toString());
PublicConstants.writeLog.info("ChildThreadDeliver(Socket): " + e.toString());
}
SendDataBean submit = new SendDataBean();
try {
int dataSize = dataInStream.readShort();
headCmdID = dataInStream.readShort();
PublicConstants.writeLog.info("dataSize===="+dataSize);
PublicConstants.writeLog.info("headCmdID===="+headCmdID);
if (headCmdID == 0x0083) {
submit.operateSeqId = dataInStream.readInt();
//modified by dufs@wayoutcom.com 2004-4-30
// byte[] msgServiceType = new byte[10];
// dataInStream.read(msgServiceType);
submit.servieceType = "m001";//new String(msgServiceType);
submit.feeType = 1;//dataInStream.readByte();
submit.infoFee = 0;//dataInStream.readInt();
submit.srcAddr = readString(dataInStream);
submit.feeTerminalId = readString(dataInStream);
submit.addDestAddr(readString(dataInStream));
submit.linkId = readString(dataInStream);
submit.sendData = readString(dataInStream);
PublicConstants.writeLog.info("Receive a message from 134.159.120.43:1122");
PublicConstants.writeLog.info("submit.srcAddr=="+submit.srcAddr);
PublicConstants.writeLog.info("submit.feeTerminalId=="+submit.feeTerminalId);
PublicConstants.writeLog.info("submit.sendData=="+submit.sendData);
PublicConstants.writeLog.info("submit.linkId=="+submit.linkId);
//给应答
dataOutStream.writeShort(9);
dataOutStream.writeShort(0x0084);
dataOutStream.writeInt(submit.operateSeqId);
dataOutStream.writeByte(0);
OperManager.getInstance().sendShortMessage(submit);
}
else {
System.out.println("have recieved erro cmd!!!");
PublicConstants.writeLog.info("have recieved erro cmd!!!!");
}
}
catch (Exception ex) {
System.out.println("get a submit exp:" + ex.toString());
PublicConstants.writeLog.info("get a submit exp:" + ex.toString());
}
}
private static String readString(DataInputStream inStream) {
byte[] readByte = new byte[180];
int i = 0;
try {
while (true) {
readByte[i] = inStream.readByte();
if (readByte[i] == '\0') {
break;
}
i++;
if (i >= 180) {
return "";
}
}
}
catch (IOException e) {
return "Erro";
}
String result = new String(readByte, 0, i);
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -