¡¤Ò»Öܵã»÷ÅÅÐÐ
¡¤ÈȵãÍÆ¼ö
ÄúµÄλÖãºÊ×Ò³ >> ¼ÆËã»ú » µÈ¼¶¿¼ÊÔ » ͨ¹ýsocket·ÃÎÊÊý¾Ý¿â >> ÕýÎÄ

ͨ¹ýsocket·ÃÎÊÊý¾Ý¿â

·¢²¼Ê±¼ä£º2008-5-30 9:23:00¡¡ä¯ÀÀ´ÎÊý: 273

ͨ¹ýSocket·ÃÎÊÊý¾Ý¿â

¡¡¡¡Tip:ͨ¹ýsocket·ÃÎÊÊý¾Ý¿â,·Ö Clinet, Display,sqlServerÈý¸öÀà

¡¡¡¡Client.Java

¡¡¡¡import java.awt.*;
¡¡¡¡import java.io.*;
¡¡¡¡import java.net.*;
¡¡¡¡import java.Applet.*;

¡¡¡¡public class Client extends Applet
¡¡¡¡{
¡¡¡¡public TextArea chat_txt;
¡¡¡¡private TextField sql_txt;
¡¡¡¡private Button connect,execute;
¡¡¡¡private Socket soc= null;
¡¡¡¡private PrintStream ps= null;
¡¡¡¡Listen listen;

¡¡¡¡public void init()
¡¡¡¡{
¡¡¡¡chat_txt= new TextArea();
¡¡¡¡sql_txt= new TextField(20);
¡¡¡¡connect= new Button("Connect");
¡¡¡¡execute= new Button("Execute");
¡¡¡¡execute.disable();

¡¡¡¡Panel pp= new Panel();
¡¡¡¡pp.setLayout(new FlowLayout());
¡¡¡¡pp.add(sql_txt);
¡¡¡¡pp.add(connect);
¡¡¡¡pp.add(execute);

¡¡¡¡add("North",pp);
¡¡¡¡add("Center",chat_txt);
¡¡¡¡}

¡¡¡¡public boolean action(Event evt,Object obj)
¡¡¡¡{
¡¡¡¡if(evt.target instanceof Button)
¡¡¡¡{
¡¡¡¡String label= (String)obj;
¡¡¡¡if(label.equals("Connect"))
¡¡¡¡{

¡¡¡¡try{
¡¡¡¡soc= new Socket(InetAddress.getLocalHost(),4700);
¡¡¡¡ps= new PrintStream(soc.getOutputStream());
¡¡¡¡ps.println("HELLO");
¡¡¡¡ps.flush();
¡¡¡¡listen= new Listen(this,soc);
¡¡¡¡listen.start();
¡¡¡¡}catch(Exception e)
¡¡¡¡{
¡¡¡¡chat_txt.setText(e.toString());
¡¡¡¡disconnect();
¡¡¡¡}
¡¡¡¡connect.setLabel("Disconnect");
¡¡¡¡execute.enable();
¡¡¡¡}else if(label.equals("Disconnect"))
¡¡¡¡disconnect();
¡¡¡¡else if(label.equals("Execute"))
¡¡¡¡{
¡¡¡¡if(sql_txt.getText()!= null)
¡¡¡¡{
¡¡¡¡ps.println("FIND");
¡¡¡¡ps.flush();
¡¡¡¡ps.println(sql_txt.getText());
¡¡¡¡ps.flush();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡return false;
¡¡¡¡}

¡¡¡¡public void disconnect()
¡¡¡¡{
¡¡¡¡if(soc!= null)
¡¡¡¡{
¡¡¡¡try{
¡¡¡¡listen.stop();
¡¡¡¡ps.println("QUIT");
¡¡¡¡ps.flush();
¡¡¡¡soc.close();
¡¡¡¡}catch(Exception e){}
¡¡¡¡finally{
¡¡¡¡listen.stop();
¡¡¡¡listen= null;
¡¡¡¡soc= null;
¡¡¡¡}
¡¡¡¡execute.disable();
¡¡¡¡connect.setLabel("Disconnect");
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡class Listen extends Thread
¡¡¡¡{
¡¡¡¡Socket socket= null;
¡¡¡¡DataInputStream dis= null;
¡¡¡¡Client parent= null;

¡¡¡¡public Listen(Client p,Socket s)
¡¡¡¡{
¡¡¡¡parent= p;
¡¡¡¡socket= s;
¡¡¡¡try{
¡¡¡¡dis= new DataInputStream(socket.getInputStream());
¡¡¡¡}catch(Exception e){}
¡¡¡¡}

¡¡¡¡public void run()
¡¡¡¡{
¡¡¡¡String line= null;

¡¡¡¡while(true)
¡¡¡¡{
¡¡¡¡try{
¡¡¡¡line= dis.readLine();
¡¡¡¡}catch(Exception e){}
¡¡¡¡if(line!= null)
¡¡¡¡parent.chat_txt.appendText(line);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}


¡¡¡¡Display.java

¡¡¡¡/********************************************
¡¡¡¡¸ñʽ»¯Êä³öÊý¾Ý¿â¼Ç¼,³ö×Ô<<ʹÓÃjava½øÐÐSQLÊý¾Ý¿â³ÌÐòÉè¼Æ>>
¡¡¡¡·µ»ØÖµÎª¸ñʽ»¯µÄ×Ö·û´®
¡¡¡¡********************************************/
¡¡¡¡import java.sql.*;

¡¡¡¡class Display extends Object
¡¡¡¡{
¡¡¡¡ResultSet theResultSet;
¡¡¡¡String theResult;

¡¡¡¡public void display()
¡¡¡¡{}

¡¡¡¡public void setResult(ResultSet result)
¡¡¡¡{
¡¡¡¡theResultSet= result;
¡¡¡¡}

¡¡¡¡public String getString()
¡¡¡¡throws SQLException,NoClassDefFoundError
¡¡¡¡{
¡¡¡¡theResult= "";
¡¡¡¡ResultSetMetaData metaData= theResultSet.getMetaData();
¡¡¡¡int colcount = metaData.getColumnCount();
¡¡¡¡int colSize[]= new int[colcount];
¡¡¡¡String colLabel[]= new String[colcount];
¡¡¡¡int colType[]= new int[colcount];
¡¡¡¡String colTName[]= new String[colcount];
¡¡¡¡int colPrec[]= new int[colcount];
¡¡¡¡int colScale[]= new int[colcount];

¡¡¡¡theResult +="\n";
¡¡¡¡for(int i= 1;i<= colcount;i++)
¡¡¡¡{
¡¡¡¡colSize[i-1] = metaData.getColumnDisplaySize(i);
¡¡¡¡colLabel[i-1]= metaData.getColumnLabel(i);
¡¡¡¡colType[i-1] = metaData.getColumnType(i);
¡¡¡¡colTName[i-1]= metaData.getColumnTypeName(i);
¡¡¡¡colPrec[i-1] = metaData.getPrecision(i);
¡¡¡¡colScale[i-1]= metaData.getScale(i);

¡¡¡¡if(colSize[i-1]<1+ colLabel[i-1].length())
¡¡¡¡colSize[i-1]= 1+colLabel[i-1].length();
¡¡¡¡theResult+= rightPad(colLabel[i-1],colSize[i-1]);
¡¡¡¡}

¡¡¡¡theResult +="\n\n";
¡¡¡¡int row= 0;

¡¡¡¡while(theResultSet.next())
¡¡¡¡{
¡¡¡¡row++;
¡¡¡¡for(int i=1;i<= colcount;i++)
¡¡¡¡{
¡¡¡¡String colvalue= theResultSet.getString(i);
¡¡¡¡if(colvalue== null)
¡¡¡¡colvalue="";
¡¡¡¡theResult+= rightPad(colvalue,colSize[i-1]);
¡¡¡¡}
¡¡¡¡theResult+="\n";
¡¡¡¡}
¡¡¡¡theResult+="\n(" +row+ "rows included)\n";
¡¡¡¡return theResult;
¡¡¡¡}

¡¡¡¡private String rightPad(String s,int len)
¡¡¡¡{
¡¡¡¡int curlen= s.length();
¡¡¡¡if(curlen>len)
¡¡¡¡return repString("*",len);
¡¡¡¡return (s+repString(" ",(len-curlen)));
¡¡¡¡}

¡¡¡¡private String repString(String s,int times)
¡¡¡¡{
¡¡¡¡String result="";
¡¡¡¡for(int i=0;i<times;i++)
¡¡¡¡result+= s;
¡¡¡¡return result;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡sqlServer.java

¡¡¡¡import java.awt.*;
¡¡¡¡import java.sql.*;
¡¡¡¡import java.io.*;
¡¡¡¡import java.net.*;
¡¡¡¡import Display;

¡¡¡¡public class sqlServer
¡¡¡¡{
¡¡¡¡public static void main(String[] args)
¡¡¡¡{
¡¡¡¡System.out.println("Waiting for connection");

¡¡¡¡try{
¡¡¡¡ServerSocket session= new ServerSocket(4700);
¡¡¡¡handleRequests handler= null;
¡¡¡¡System.out.println("Waiting for connection");
¡¡¡¡while(true)
¡¡¡¡{
¡¡¡¡Socket socket= null;
¡¡¡¡socket= session.accept();
¡¡¡¡if(socket== null)
¡¡¡¡continue;
¡¡¡¡System.out.println("Connection made");
¡¡¡¡handler= new handleRequests(socket);
¡¡¡¡handler.start();
¡¡¡¡}
¡¡¡¡}catch(Exception e)
¡¡¡¡{
¡¡¡¡System.out.println("¿Í»§Á¬½Óʧ°Ü"+e);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}

¡¡¡¡class handleRequests extends Thread
¡¡¡¡{
¡¡¡¡private DataInputStream in= null;
¡¡¡¡private PrintStream out= null;
¡¡¡¡private Socket socket= null;

¡¡¡¡Connection theConnection= null;
¡¡¡¡Statement theStatement= null;
¡¡¡¡ResultSet theResultSet= null;
¡¡¡¡Display display= null;

¡¡¡¡public handleRequests(Socket s)
¡¡¡¡throws IOException
¡¡¡¡{
¡¡¡¡socket= s;
¡¡¡¡in= new DataInputStream(socket.getInputStream());
¡¡¡¡out= new PrintStream(socket.getOutputStream());
¡¡¡¡}

¡¡¡¡public void openConnection()
¡¡¡¡{
¡¡¡¡try{
¡¡¡¡Class.forName("sun.JDBC.odbc.JdbcOdbcDriver");
¡¡¡¡if(theConnection!= null)
¡¡¡¡theConnection.close();
¡¡¡¡theConnection= DriverManager.getConnection("jdbc:odbc:test","admin","1234");
¡¡¡¡theStatement= theConnection.createStatement();
¡¡¡¡display= new Display();
¡¡¡¡}catch(Exception e)
¡¡¡¡{
¡¡¡¡System.out.println(e);
¡¡¡¡}
¡¡¡¡}

¡¡¡¡public void run()
¡¡¡¡{
¡¡¡¡openConnection();
¡¡¡¡try{
¡¡¡¡String line= null;
¡¡¡¡while(true)
¡¡¡¡{
¡¡¡¡line = in.readLine();
¡¡¡¡if(line!= null)
¡¡¡¡line= line.trim();
¡¡¡¡if(line.equals("FIND"))
¡¡¡¡{
¡¡¡¡line = in.readLine();
¡¡¡¡line= line.trim();
¡¡¡¡theResultSet= theStatement.executeQuery(line);
¡¡¡¡display.setResult(theResultSet);
¡¡¡¡out.print(display.getString());
¡¡¡¡out.flush();
¡¡¡¡}
¡¡¡¡if(line.equals("QUIT"))
¡¡¡¡break;
¡¡¡¡if(line.equals("HELLO"))
¡¡¡¡{
¡¡¡¡out.println("Welcome to join us");
¡¡¡¡out.flush();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡in.close();
¡¡¡¡out.close();
¡¡¡¡socket.close();
¡¡¡¡}catch(Exception e)
¡¡¡¡{
¡¡¡¡System.out.println(e);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}


ÌÖÂÛ´ËÖ÷ÌâÇë½ø>>: ͨ¹ýsocket·ÃÎÊÊý¾Ý¿â