/**
* @version 创建时间:2017年6月1日 下午3:02:18
* 类说明
*/
import java.io.*;
import java.net.*;
import java.util.Timer;
import java.util.TimerTask;
public class TcpServer {
static OutputStream os =null;
private static byte[] deliData =new byte[115];//+19
private static int degree=0;//执行多少秒
public static void main(String[] args) throws Exception{
//ServerSocket server = new ServerSocket(8890);
ServerSocket server = new ServerSocket(8890,1,InetAddress.getByName ("192.168.101.121"));
Socket client= server.accept();
InputStream is = client.getInputStream();
os = client.getOutputStream();
byte[] temp = new byte[1024];
byte[] in2b = null;
int len = 0;
String msg = null;
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
boolean res=true;
while((len=is.read(temp))!=-1){
byteOut.write(temp, 0, len); // 把读到的数据以追加的方式添加到内存流中 ,此方法写入len个字节到输出流
in2b = byteOut.toByteArray();
msg = new String(in2b,0,len);
if("gg".equals(msg)){
break;
}
if(in2b[7]==1){//login
byte[] data =new byte[33];
data[3] = (byte)33;
//byte[] RequestID = getByte(getHexStr(CommonUtils.getText(4,"0x80000001")));
//byte[] RequestID = CommonUtils.getText(4,"0x80000001");
data[4]=(byte)128;
data[7]=(byte)1;
data[11] = (byte)1;
data[15] = (byte)0;
data[31] = (byte)1;
data[32] = (byte)0;
if(res){
os.write(data);
final Timer timer = new Timer();
TimerTask timerTask = new TimerTask(){
public void run() {
if(degree==(Property.sec-1)){
timer.cancel();
}
System.out.println("第"+(degree+1)+"次开始时间:"+System.currentTimeMillis());
writeDeli();
degree++;
}
};
timer.schedule(timerTask, 0, 1 * 1000);
res=false;
}
}
}
client.close();
}
public void writeDeli(byte[] deliData){
try {
os.write(deliData);
//System.out.println(System.currentTimeMillis()+"开始时间"+as++);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//写入deliver
private static void writeDeli(){
for (int j = 0; j < 100; j++) {
new Thread(new Runnable() {
public void run() {
int num=Property.num;
for (int i = 0; i < num/100; i++) {
String j=String.valueOf(i);
while(j.length()<7){
j=0+j;
}
new TcpServer().writeDeli(putDeli(j));
}
}
}).start();;
}
System.out.println("第"+(degree+1)+"次结束时间:"+System.currentTimeMillis());
}
private static byte[] putDeli(String queue){//写入deliver的数据
deliData[3] = (byte)115;//+19
deliData[7]=(byte)3;
deliData[11] = (byte)1;
deliData[22] = (byte)0;
deliData[23] = (byte)15;
byte[] timeby = "20121212111112".getBytes();
System.arraycopy(timeby,0,deliData,24,14);
byte[] SrcTermID = "1181234".getBytes();
System.arraycopy(SrcTermID,0,deliData,38,7);
deliData[80] = (byte)26;//+19
byte[] msgid = Common.hexStringToBytes("0100610116170"+queue);//msgid自增
System.arraycopy(msgid,0,deliData,12,10);
byte[] DestTermID = ("010"+queue).getBytes();//DestTermID自增
System.arraycopy(DestTermID,0,deliData,59,10);
byte[] msgcontent = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".getBytes();
System.arraycopy(msgcontent,0,deliData,81,26);//+19
// data[89] = (byte)0;
return deliData;
}
}