?? sendbysocket.java
字號:
import java.net.*;
import javax.net.ssl.*;
import javax.net.*;
import java.io.*;
import javax.naming.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import java.sql.DriverManager;
import com.ibm.db2.jcc.*;
public class sendBySocket
{
private String databaseName="";
private InetAddress receiverHost;
private int receiverPort;
private InetAddress myHost;
private int myPort;
private String txtAddress="";
private String sslKey="";
sendBySocket(String dn,String ta)
{
databaseName=dn;
sqlOperation so=new sqlOperation();
try
{
myHost=InetAddress.getByName(so.StringFromDB("select * from DBINFORMATION where STATE=1","DBHOST"));
myPort=Integer.parseInt(so.StringFromDB("select * from DBINFORMATION where STATE=1","DBSENDPORT"));
}
catch(Exception e){}
txtAddress=ta;
}
public void sendBatchMessages(String ntime)
{
sqlOperation so=new sqlOperation();
ResultSet rs=null;
rs=so.ResultSetFromDB("select * from DBINFORMATION where STATE=0");
String password="",pno="",dbname="";
writeText writeMissionManage=new writeText(databaseName,txtAddress,"MissionManageTemp.txt");
Random random;
try
{
while(rs.next())
{
receiverHost=InetAddress.getByName(rs.getString("DBHOST"));
receiverPort=Integer.parseInt(rs.getString("DBRECEIVEPORT"));
sslKey=rs.getString("SSL");
dbname=rs.getString("DBNAME");
random = new Random();
pno=""+Math.abs(random.nextInt())%10000;
writeMissionManage.insertWriting("\t"+pno+"\t"+dbname+"\t0",ntime);
sendingOneOfMesg(dbname,pno);
}
}
catch(Exception e){}
}
public void sendSingleMessage(String dn,String Mesg)
{
String s="";
String temp="";
int start=0,mid=0,end=0;
dealMessage cutingMessage=new dealMessage();
sqlOperation so=new sqlOperation();
ResultSet rs=null;
rs=so.ResultSetFromDB("select * from DBINFORMATION where DBNAME='"+dn+"'");
SSLSocketFactory factory=null;
Socket socket=null;
PrintWriter out=null;
try
{
while(rs.next())
{
receiverHost=InetAddress.getByName(rs.getString("DBHOST"));
receiverPort=Integer.parseInt(rs.getString("DBRECEIVEPORT"));
sslKey=rs.getString("SSL");
}
}catch(Exception e){}
try
{
System.setProperty("javax.net.ssl.trustStore",sslKey);
factory=(SSLSocketFactory)SSLSocketFactory.getDefault();
socket=factory.createSocket(receiverHost,receiverPort);
out=new PrintWriter(socket.getOutputStream(),true);
out.println(Mesg);
out.close();
socket.close();
}
catch(IOException e){}
}
public void sendingOneOfMesg(String dDB,String pn)
{
String s="",temp="";
String sendMesg="";
String pno=pn;
String sql=null;
int cnt = 0;
File file=null;
//Key k=null;
RandomAccessFile fr=null;
byte insertStr[]=null;
long l=0,mark=0;
int start=0,mid=0;
dealMessage cutingMessage=new dealMessage();
SSLSocketFactory factory=null;
Socket socket=null;
PrintWriter out=null;
writeText writeDaily=new writeText(databaseName,txtAddress,"Database Daily.txt");
try
{
//k=new Key(txtAddress);
file=new File(txtAddress+"MissionManageTemp.txt");
//k.decrypt(txtAddress+"MissionManageTemp.txt");
fr=new RandomAccessFile(file,"rw");
l=fr.getFilePointer();
while((s=fr.readLine())!=null)
{
mid=s.indexOf("\t");
if(mid>0)
{
start=0;
temp=cutingMessage.cutMessage(s,start,mid);
if(temp.equals("Update"))
{
mark=l;
cnt=0;
}
else
{
cnt++;
}
}
else
{break;
/*if((s.indexOf(pno))!=-1)
{
start=s.lastIndexOf("\t");
mid=s.length();
temp=cutingMessage.cutMessage(s,start,mid);
if(temp.equals("0"))
{
break;
}
}*/
}
l=fr.getFilePointer();
}
//連接
System.setProperty("javax.net.ssl.trustStore",sslKey);
factory=(SSLSocketFactory)SSLSocketFactory.getDefault();
socket=factory.createSocket(receiverHost,receiverPort);
out=new PrintWriter(socket.getOutputStream(),true);
getUpdateTime gut=new getUpdateTime();
writeDaily.writingDaily(gut.getSystemTime()+"\tSend synchronism messages to "+dDB);
if(cnt>1)
{
// 發送包頭信息
s="package\t"+pno+"\t"+databaseName+"\t "+cnt;
out.println(s);
fr.seek(mark);
fr.readLine();
while((s=fr.readLine())!=null)
{
socket=factory.createSocket(receiverHost,receiverPort);
out=new PrintWriter(socket.getOutputStream(),true);
if(s.indexOf("\t")<1)
{
break;
}
else
{
sendMesg=pno+"\t"+s;
out.println(sendMesg);
}
}
}
else
{
if(cnt==1)
{
fr.seek(mark);
fr.readLine();
if((s=fr.readLine())!=null)
{
sendMesg="single\t"+pno+"\t"+databaseName+"\t"+s;
out.println(sendMesg);
}
}
}
//k.encryption(txtAddress+"MissionManageTemp.txt");
fr.close();
out.close();
socket.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -