📄 receivemesg.java
字号:
import java.net.*;
import java.io.*;
import java.sql.*;
import javax.sql.*;
import java.sql.DriverManager;
//数据库Agent的接受器,监听有否从其他Agent发来的更新信息
public class receiveMesg extends Thread
{
private String databaseName="";
private static String txtAddress="";
private String ms="";
private String password="";
receiveMesg(String mesg,String dn,String ta)
{
ms=mesg;
databaseName=dn;
txtAddress=ta;
init();
}
public void init()
{
sqlOperation so=new sqlOperation();
password=so.StringFromDB("select * from DBINFORMATION where STATE=1","PASSWORD");
}
public void run()
{
String s=ms;
String temp="",temp2="",fromDB="";
int start=0,mid=0,cnt=0;
dealMessage cutingMessage=new dealMessage();
File file=null;
RandomAccessFile fr=null;
byte insertStr[]=null;
long l=0;
String enter="\r\n";
int enterLength=enter.length();
byte insertEnter[]=new byte[enterLength];
enter.getBytes(0,enterLength,insertEnter,0);
//Key k=null;
sqlOperation so=null;
writeText writeMissionManage=new writeText(databaseName,txtAddress,"MissionManageTemp.txt");
writeText writeDaily=new writeText(databaseName,txtAddress,"Database Daily.txt");
try
{
getUpdateTime gut=new getUpdateTime();
String ntime=gut.getSystemTime();
start=0;
mid=s.indexOf("\t");
temp=cutingMessage.cutMessage(s,start,mid);
sendBySocket ds=new sendBySocket(databaseName,txtAddress);
//k=new Key(txtAddress);
if(temp.equals("package"))
{
start=s.indexOf("\t");
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
start=0;
mid=s.indexOf("\t");
temp=cutingMessage.cutMessage(s,start,mid);
temp+="\t"+ntime;
start=mid;
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
temp+="\t"+s;
writeMissionManage.writingMission(temp);
temp="------------------------------------------";
writeMissionManage.writingMission(temp);
}
else
{
if(temp.equals("confirm"))
{
start=s.lastIndexOf("\t");
mid=s.length();
temp=cutingMessage.cutMessage(s,start,mid);
writeMissionManage.confirmPack(temp);
}
else
{
if(temp.equals("single"))
{
start=s.indexOf("\t");
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
start=0;
mid=s.indexOf("\t");
temp2=cutingMessage.cutMessage(s,start,mid);
temp=temp2+"\t"+ntime+"\t";
start=mid;
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
start=0;
mid=s.indexOf("\t");
fromDB=cutingMessage.cutMessage(s,start,mid);
temp+=fromDB;
temp+="\t1";
writeMissionManage.writingMission(temp);
start=mid;
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
temp="\t"+s;
writeMissionManage.writingMission(temp);
temp="------------------------------------------";
writeMissionManage.writingMission(temp);
receivePackMesg(temp2,fromDB);
}
else
{
if(temp.equals("search"))
{
start=s.indexOf("\t");
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
start=0;
mid=s.indexOf("\t");
temp2=cutingMessage.cutMessage(s,start,mid);
temp="BeSearched-\t"+ntime+"\t";
start=mid;
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
start=0;
mid=s.indexOf("\t");
fromDB=cutingMessage.cutMessage(s,start,mid);
temp+=fromDB;
temp+="\t"+temp2;
writeMissionManage.writingMission(temp);
start=mid;
mid=s.length();
s=cutingMessage.cutMessage(s,start,mid);
temp="\t"+s;
writeMissionManage.writingMission(temp);
temp="------------------------------------------";
writeMissionManage.writingMission(temp);
dealSearchMesg(s,temp2,fromDB);
}
else
{
oneOfPackMesg();
}
}
}
}
}catch(Exception e){}
}
public void oneOfPackMesg()
{
String s=ms;System.out.println(s);
String temp="",temp2="",fromDB="";
int start=0,mid=0,cnt=0;
dealMessage cutingMessage=new dealMessage();
writeText writeMissionManage=new writeText(databaseName,txtAddress,"MissionManageTemp.txt");
//Key k=null;
File file=null;
RandomAccessFile fr=null;
byte insertStr[]=null;
long l=0;
String enter="\r\n";
int enterLength=enter.length();
byte insertEnter[]=new byte[enterLength];
enter.getBytes(0,enterLength,insertEnter,0);
mid=s.indexOf("\t");
temp=cutingMessage.cutMessage(s,start,mid);
try
{
file=new File(txtAddress+"MissionManageTemp.txt");
//k.decrypt(txtAddress+"MissionManageTemp.txt");
if(file.exists())
{
fr=new RandomAccessFile(file,"rw");
l=fr.getFilePointer();
while((s=fr.readLine())!=null)
{
mid=s.indexOf("\t");
if(mid>0)
{
start=0;
temp2=cutingMessage.cutMessage(s,start,mid);
if(temp.equals(temp2))
{
start=mid;
mid=s.length();
temp2=cutingMessage.cutMessage(s,start,mid);
start=0;
mid=temp2.indexOf("\t");
temp2=cutingMessage.cutMessage(temp2,start,mid);
start=s.lastIndexOf("\t");
mid=s.length();
cnt=Integer.parseInt(cutingMessage.cutMessage(s,start,mid));
cnt--;
start=0;
mid=s.lastIndexOf("\t");
s=cutingMessage.cutMessage(s,start,mid);
start=s.lastIndexOf("\t");
mid=s.length();
fromDB=cutingMessage.cutMessage(s,start,mid);
s+="\t"+cnt;
insertStr=new byte[150-enterLength];
s.getBytes(0,s.length(),insertStr,0);
fr.seek(l);
fr.write(insertStr);
fr.write(insertEnter);
fr.close();
break;
}
}
l=fr.getFilePointer();
}
//k.encryption(txtAddress+"MissionManageTemp.txt");
start=ms.indexOf("\t");
mid=ms.length();
s=cutingMessage.cutMessage(ms,start,mid);
writeMissionManage.insertWriting("\t"+s,temp2);
if(cnt==0)
{
receivePackMesg(temp,fromDB);
}
}
}catch(Exception e){}
}
public void receivePackMesg(String pno,String fromDB)
{
String s="";
String temp="";
FileWriter fw=null;
char buffer[]=null;
int start=0,mid=0,end=0,cut=0;
String packNo=pno;
int t=0;
dealMessage cutingMessage=new dealMessage();
writeText writeDaily=new writeText(databaseName,txtAddress,"Database Daily.txt");
writeText writeMissionManage=new writeText(databaseName,txtAddress,"MissionManageTemp.txt");
//Key k=null;
sendBySocket ds=new sendBySocket(databaseName,txtAddress);
sqlOperation so=new sqlOperation();
s=so.multiSqlOperation(txtAddress,pno);
getUpdateTime gut=new getUpdateTime();
String nt=gut.getSystemTime();
if(s.equals("NO"))
{
System.out.println("update seccess");
writeMissionManage.confirmPack(packNo);
try
{
writeDaily.writingDaily(nt+"\tLocal database have synchronized with "+fromDB+"\n");
}
catch(Exception e){}
s="confirm\t"+packNo;
ds.sendSingleMessage(fromDB,s);
}
else
{
System.out.println("update fail:"+s);
}
}
public void dealSearchMesg(String ms,String pno,String fromDB)
{
String mesg=ms;
String s="",temp="",columnName="",value="",sql="",sql2="",sql3="",sql4="";
int start=0,mid=0,end=0,cut=0;
String packNo=pno;
int t=0;
dealMessage cutingMessage=new dealMessage();
writeText writeDaily=new writeText(databaseName,txtAddress,"Database Daily.txt");
writeText writeMissionManage=new writeText(databaseName,txtAddress,"MissionManageTemp.txt");
sql="select TABLE_NAME from TABLELIST where ";
sql2="select TABLE_NAME from TABLELIST where ";
ResultSet rs=null,rs2=null;
start=0;
mid=mesg.indexOf("\t");
if(mid!=-1)
{
s=cutingMessage.cutMessage(mesg,start,mid);
}
else
{
s=mesg;
}
mid=s.indexOf("=");
s=s.replace("=","\t");
start=0;
mid=s.indexOf("\t");
columnName=cutingMessage.cutMessage(s,start,mid);
sql+="COLUMN_NAME='"+columnName+"'";
start=mid;
mid=s.length();
value=cutingMessage.cutMessage(s,start,mid);
sql3=columnName+"='"+value+"'";
start=mesg.indexOf("\t");
while(start!=-1)
{
mid=mesg.length();
mesg=cutingMessage.cutMessage(mesg,start,mid);
start=0;
mid=mesg.indexOf("\t");
s=cutingMessage.cutMessage(mesg,start,mid);
temp=s.trim();
start=mid;
mid=mesg.length();
mesg=cutingMessage.cutMessage(mesg,start,mid);
start=0;
mid=mesg.indexOf("\t");
if(mid!=-1)
{
s=cutingMessage.cutMessage(mesg,start,mid);
}
else
{
s=mesg;
}
s=s.replace("=","\t");
start=0;
mid=s.indexOf("\t");
columnName=cutingMessage.cutMessage(s,start,mid);
start=mid;
mid=s.length();
value=cutingMessage.cutMessage(s,start,mid);
if(temp.equals("&&"))
{
sql+=" and ";
sql+="COLUMN_NAME='"+columnName+"'";
sql3+=" and ";
sql3+=columnName+"='"+value+"'";
}
else
{
if(temp.equals("||"))
{
if(value2.length()!=0)
{
sql2+=" or ";
sql4+=" or ";
}
sql2+="COLUMN_NAME='"+columnName+"'";
sql4+=columnName+"='"+value+"'";
}
}
start=mesg.indexOf("\t");
}
/*try
{
rs=so.ResultSetFromDB(sql);
while(rs.next())
{
temp=rs.getString("TABLE_NAME");
s="select * from "+temp+" where "+sql3;
rs2=so.ResultSetFromDB(s);
while(rs2.next())
{
}
}
}catch(Exception e){}*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -