📄 multiserversocket.java
字号:
import java.io.*;import java.net.*;import java.sql.*;public class MultiServerSocket { public static void main(String args[]) { ServerSocket ss=null; int sumClient=1; try { ss=new ServerSocket(3000); System.out.println("Server on-line"); } catch (Exception e) { System.out.println("Cannot listen on port 3000"); } try { while(true) { new ServerThread(ss.accept(),sumClient).start(); sumClient++; System.out.println("Client successfully connected,recieving data..."); } } catch (Exception e) { System.out.println("Exception:"+e.toString()); } }}class ServerThread extends Thread { Socket s; int sumClient; int i; public ServerThread(Socket ts,int sc){ s=ts; sumClient=sc; System.out.println("ServerThread established"); } public void run(){ String name=""; String password=""; String reg=""; boolean records=false; try { BufferedReader in= new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter out= new PrintWriter( new BufferedWriter( new OutputStreamWriter(s.getOutputStream())),true); reg=in.readLine(); password=in.readLine(); name=reg; if(reg.startsWith("$")||reg.startsWith("+")||reg.startsWith("^")|| reg.startsWith("*")||reg.startsWith("&")) name=name.substring(1); System.out.println("REG: "+reg); System.out.println(name); System.out.println(password); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection("jdbc:odbc:community","",""); Statement stmt=con.createStatement(); ResultSet rs; String SQLOrder="SELECT * FROM PERSON WHERE(NAME='"+name+"' AND PASSWORD='"+password+"')"; rs=stmt.executeQuery(SQLOrder); records=rs.next(); if(records==true) { out.println("1"); } Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM COMPANY WHERE(NAME='"+name+"' AND PASSWORD='"+password+"')"; rs=stmt.executeQuery(SQLOrder); records=rs.next(); if(records==true) { out.println(rs.getString("CHARACTER")); } Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM ACCOUNTS WHERE(ACCOUNT='"+name+"' AND PASSWORD='"+password+"')"; rs=stmt.executeQuery(SQLOrder); records=rs.next(); if(records==true) { out.println("1"); } if(password.equalsIgnoreCase("Balance")) { SQLOrder="SELECT * FROM ACCOUNTS WHERE(ACCOUNT='"+name+"')"; rs=stmt.executeQuery(SQLOrder); rs.next(); out.println(rs.getString("BALANCE")); } if(password.equalsIgnoreCase("Update")){ SQLOrder="UPDATE ACCOUNTS SET BALANCE='"+in.readLine()+"' WHERE ACCOUNT='"+name+"'"; stmt.executeUpdate(SQLOrder); System.out.println("Update Successfully"); } if(password.equalsIgnoreCase("ChangePwd")){ SQLOrder="SELECT * FROM ACCOUNTS WHERE(ACCOUNT='"+name+"')"; rs=stmt.executeQuery(SQLOrder); rs.next(); SQLOrder="UPDATE ACCOUNTS SET PASSWORD='"+in.readLine()+"' WHERE(ACCOUNT='"+name+"')"; stmt.executeUpdate(SQLOrder); } Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM ACCOUNTS WHERE(ACCOUNT='"+name+"')"; rs=stmt.executeQuery(SQLOrder); records=rs.next(); //PACKAGES*************************************** if(name.equalsIgnoreCase("Initializing")) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM NeededSoftwares "; rs=stmt.executeQuery(SQLOrder); for(i=0;rs.next();){i++;} out.println(i); System.out.println("i="+i); rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("Listing NeededSoftwares...."); out.println(rs.getString("nameOfsoftwares")); out.println(rs.getString("typeOfsoftwares")); } out.println("Term1"); SQLOrder="SELECT * FROM NeededSoftwares "; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("Listing NeededSoftwares again...."); out.println(rs.getString("nameOfsoftwares")); out.println(rs.getString("typeOfsoftwares")); } out.println("Term2"); SQLOrder="SELECT * FROM MAPPING WHERE(customerCrop='"+password+"')"; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("Listing Corp...."); out.println(rs.getString("mainCrop")); out.println(rs.getString("mainAccount")); out.println(rs.getString("cash")); out.println(rs.getString("date")); } out.println("Term3"); } if(name.equalsIgnoreCase("Get ForSaleSoftwares")) { i=0; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM ForSaleSoftwares "; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ i++;} out.println(i); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM ForSaleSoftwares "; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("Listing Softwares...."); out.println(rs.getString("name")); out.println(rs.getString("type")); out.println(rs.getString("price")); } out.println("END"); } if(name.equalsIgnoreCase("SoftCorp Init")){ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM ForSaleSoftwares "; rs=stmt.executeQuery(SQLOrder); for(i=0;rs.next();){i++;} out.println(i); rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("Listing ForSaleSoftwares...."); out.println(rs.getString("name")); out.println(rs.getString("type")); out.println(rs.getString("price")); } out.println("Term1"); } if(name.equalsIgnoreCase("SoftwareCorp initiation")){ SQLOrder="SELECT * FROM ForSaleSoftwares "; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ out.println(rs.getString("name")); out.println(rs.getString("type")); out.println(rs.getString("price")); } out.println("Terminated1"); SQLOrder="SELECT * FROM MAPPING WHERE(customerCrop='"+in.readLine()+"')"; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("In mapping customercorp"); out.println(rs.getString("mainCrop")); out.println(rs.getString("mainAccount")); out.println(rs.getString("goods")); out.println(rs.getString("cash")); out.println(rs.getString("date")); } out.println("Terminated2"); } if(name.equalsIgnoreCase("Fund Init")){ i=0; String temp; String corptype="SoftDeveloper"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String SQLOrder1="SELECT * FROM COMPANY WHERE(CHARACTER='"+corptype+"')"; rs=stmt.executeQuery(SQLOrder1); while(rs.next()) i++; out.println(i); out.flush(); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="SELECT * FROM COMPANY WHERE(CHARACTER='"+corptype+"')"; rs=stmt.executeQuery(SQLOrder); while(rs.next()){ System.out.println("Listing company...."); temp=rs.getString("NAME"); out.println(temp); out.println(rs.getString("REGISTERDATE")); out.println(rs.getString("CAPTIAL")); out.println(rs.getString("CREDIT")); String acc=new String(); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection acon=DriverManager.getConnection("jdbc:odbc:community","",""); Statement astmt=acon.createStatement(); String aSQLOrder="SELECT * FROM ACCOUNTS WHERE(USERNAME='"+temp+"')"; ResultSet ars=astmt.executeQuery(aSQLOrder); while(ars.next()) {acc=ars.getString("ACCOUNT");} } catch(Exception ae) {System.out.println(ae.toString());} out.println(acc); } out.println("Termed1"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:community","",""); stmt=con.createStatement(); temp="SoftDeveloper"; SQLOrder="SELECT * FROM COMPANY WHERE(CHARACTER='"+temp+"')"; rs=stmt.executeQuery(SQLOrder); while(rs.next()) { System.out.println("in Termed2 loop..."); out.println(rs.getString("NAME")); out.println(rs.getString("REGISTERDATE")); out.println(rs.getString("CAPTIAL")); out.println(rs.getString("CREDIT")); } out.println("Termed2"); } //PACKAGES END***************************** if(records==true) { out.println("1"); } else out.println("0");//=============================================================================== if(reg.startsWith("+") &&records==false) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="INSERT INTO PERSON VALUES('"+name+"','"+password+"')"; stmt.executeUpdate(SQLOrder); System.out.println("Server insert succeeded"); } if(reg.startsWith("$")&&records==false) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="INSERT INTO COMPANY VALUES('"+name+"','"+password+"','"+in.readLine()+"','"+in.readLine()+"','"+in.readLine()+"','"+in.readLine()+"')"; stmt.executeUpdate(SQLOrder); System.out.println("Server Account insert succeeded"); } if(reg.startsWith("^")){ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="INSERT INTO MAPPING VALUES('"+name+"','"+password+"','"+in.readLine()+"','"+in.readLine()+"','"+in.readLine()+"','"+in.readLine()+"')"; stmt.executeUpdate(SQLOrder); } if(reg.startsWith("*")) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="INSERT INTO MAPPING VALUES('"+name+"','"+password+"','money','"+in.readLine()+"','"+in.readLine()+"','"+in.readLine()+"')"; stmt.executeUpdate(SQLOrder); System.out.println("Insert Succeed"); } if(reg.startsWith("&")){ String temp="0"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); SQLOrder="INSERT INTO ACCOUNTS VALUES('"+name+"','"+in.readLine()+"','"+password+"','"+temp+"')"; stmt.executeUpdate(SQLOrder); System.out.println("Ins Account Succeed"); } rs.close(); con.close(); out.close(); in.close(); s.close(); System.out.println("ServerSocket Terminated"); } catch (Exception e) {e.toString();} } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -