📄 clientthread.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.net.*;
import java.io.*;
import java.sql.*;
public class ClientThread extends Thread
{
Socket Sock;
DataInputStream inData;
DataOutputStream outData;
ObjectOutputStream outObject;
String Getcmd;
LogPane CardLog;
RequestPane QuestPane;
Vector m_Bill = new Vector();
SimpleDateFormat DateFormatter=new SimpleDateFormat("yyyy-MM-dd");
public ClientThread(Socket s,LogPane card,RequestPane q)
{
Sock=s;
CardLog=card;
QuestPane=q;
}
public void run()
{ System.out.println("Client Connected! IP:"+Sock.getInetAddress().getHostAddress());
try
{
inData = new DataInputStream(Sock.getInputStream());
outData = new DataOutputStream(Sock.getOutputStream());
}
catch (IOException e)
{
System.out.println("Error: "+e.toString());
}
while(true)
{
try
{
if((Getcmd=new String(inData.readUTF()))!=null);
{
System.out.println("Received from client:"+Getcmd);
ProcessData(Getcmd);
//outData.writeUTF(Getcmd);
}
}
catch (IOException e)
{
System.out.println(" connect over!");
break;
}
catch (Exception e)
{
System.out.println("connect over!");
break;
}
}
}
private void Log(Vector Bill)
{
System.out.println("Log Started!");
Date time = new Date();
String IP=Sock.getInetAddress().getHostAddress();
String Product="";
String Amount="";
String Money="";
String CardID="";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:company","","");
Statement s = c.createStatement();
for (int i=0;i<Bill.size();i++)
{
Product=new String(((BillItem)Bill.elementAt(i)).Name);
Amount=new String(String.valueOf(((BillItem)Bill.elementAt(i)).buyNum));
Money=new String(String.valueOf(((BillItem)Bill.elementAt(i)).Money));
CardID=new String(((BillItem)Bill.elementAt(i)).CardID);
String newLog=new String("INSERT INTO log"+"(BuyTime,CardID,IP,Product,Amount,Cash)"
+"VALUES('"+DateFormatter.format(time)+"','"+CardID+"','"+IP
+"','"+Product+"',"+Amount+","+Money+")");
System.out.println(newLog);
s.executeUpdate(newLog);
}
s.close();
m_Bill.removeAllElements();
this.sleep(1000);
CardLog.Logdata.Refresh("select * from log");
}
catch(SQLException Exp)
{ System.out.println("sqlexception "+Exp); }
catch(ClassNotFoundException Exp)
{ System.out.println("classnotfound"); }
catch(Exception Exp)
{ System.out.println("exp"); }
}
private void RecordSend(String name,int cont,String have)
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:company","","");
Statement s = c.createStatement();
s.executeUpdate("DELETE FROM request WHERE RequestIP='"+Sock.getInetAddress().getHostAddress()+"' AND Product='"+name+"'");
String newRecord=new String("INSERT INTO request"+"(ProductID,Product,RequestIP,RequestTime,RequestNum,NowHave)"
+"VALUES('"+"1','"+name+"','"+Sock.getInetAddress().getHostAddress()+"','"+
DateFormatter.format(new Date())+"','"+String.valueOf(cont)+"','"+have+"')");
System.out.println(newRecord);
s.executeUpdate(newRecord);
s.close();
this.sleep(500);
QuestPane.getRequestDB();
}
catch(SQLException Exp)
{ System.out.println("sqlexception "+Exp); }
catch(ClassNotFoundException Exp)
{ System.out.println("classnotfound"); }
catch(Exception Exp)
{ System.out.println("exp"); }
}
private void ProcessData(String command)
{
StringTokenizer st=new StringTokenizer(command,"|");
String[] tokens=new String[st.countTokens()];
int i=0;
String Card ="";
String Name ="";
String Cont ="";
String Cash ="";
String Have="";
while(st.hasMoreTokens())
{
tokens[i]=st.nextToken();
if(tokens[i].trim().substring(0,5).toUpperCase().equals("CARD:"))
Card = new String(tokens[i].trim().substring(5));
if(tokens[i].trim().substring(0,5).toUpperCase().equals("CASH:"))
Cash = new String(tokens[i].trim().substring(5));
if(tokens[i].trim().substring(0,5).toUpperCase().equals("CONT:"))
Cont = new String(tokens[i].trim().substring(5));
if(tokens[i].trim().substring(0,5).toUpperCase().equals("NAME:"))
Name = new String(tokens[i].trim().substring(5));
if(tokens[i].trim().substring(0,5).toUpperCase().equals("HAVE:"))
Have = new String(tokens[i].trim().substring(5));
i++;
}
if (command.trim().toUpperCase().substring(0,5).equals("TRAD:"))
{m_Bill.addElement(new BillItem(Name,Integer.parseInt(Cont),Double.parseDouble(Cash),Card));}
if (command.trim().toUpperCase().substring(0,5).equals("OVER:"))
{Log(m_Bill);}
if (command.trim().toUpperCase().substring(0,5).equals("SEND:"))
{
RecordSend(Name,Integer.parseInt(Cont),Have);}
}
}
class BillItem {
public String Name;
public int buyNum;
public double Money;
public String CardID;
BillItem(String name,int num,double money,String card)
{
this.Name=name;
this.buyNum=num;
this.Money=money;
this.CardID=card;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -