Õ¾ÄÚËÑË÷: ÇëÊäÈëËÑË÷¹Ø¼ü´Ê

µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú Java רÌâ ¡ú ÓÃJavaʵÏÖ¶àÏ̷߳þÎñÆ÷³ÌÐò

ÓÃJavaʵÏÖ¶àÏ̷߳þÎñÆ÷³ÌÐò

ÕªÒª: ÔÚJava³öÏÖ֮ǰ£¬±àд¶àÏ̳߳ÌÐòÊÇÒ»¼þ·³ËöÇÒ°éËæÐí¶à²»°²È«ÒòËصÄÊÂÇé¡£
¡¡¡¡ÕªÒª£ºÔÚJava³öÏÖ֮ǰ£¬±àд¶àÏ̳߳ÌÐòÊÇÒ»¼þ·³ËöÇÒ°éËæÐí¶à²»°²È«ÒòËصÄÊÂÇé¡£ÀûÓÃJava£¬±àд°²È«¸ßЧµÄ¶àÏ̳߳ÌÐò±äµÃ¼òµ¥£¬¶øÇÒÀûÓöàÏ̺߳ÍJavaµÄÍøÂç°üÎÒÃÇ¿ÉÒÔ·½±ãµÄʵÏÖ¶àÏ̷߳þÎñÆ÷³ÌÐò¡£

¡¡¡¡JavaÊÇ°éËæInternetµÄ´ó³±²úÉúµÄ£¬¶ÔÍøÂç¼°¶àÏ߳̾ßÓÐÄÚÔÚµÄÖ§³Ö£¬¾ßÓÐÍøÂçʱ´ú±à³ÌÓïÑÔµÄÒ»ÇÐÌص㡣´ÓJavaµÄµ±Ç°Ó¦Óÿ´£¬JavaÖ÷ÒªÓÃÓÚÔÚInternet»ò¾ÖÓòÍøÉϵÄÍøÂç±à³Ì£¬¶øÇÒ½«Java×÷ΪÖ÷Á÷µÄÍøÂç±à³ÌÓïÑÔµÄÇ÷ÊÆÓúÀ´ÓúÃ÷ÏÔ¡£Êµ¼Ê¹¤×÷ÖУ¬ÎÒÃdzýÁËʹÓÃÉÌÆ·»¯µÄ·þÎñÆ÷Èí¼þÍ⣬ʱ³£ÐèÒª°´ÕÕʵ¼Ê»·¾³±àд×Ô¼ºµÄ·þÎñÆ÷Èí¼þ£¬ÒÔÍê³ÉÌض¨ÈÎÎñ»òÓëÌض¨¿Í»§¶ËÈí¼þʵÏÖ½»»¥¡£ÔÚʵÏÖ·þÎñÆ÷³ÌÐòʱ£¬ÎªÌá¸ß³ÌÐòÔËÐÐЧÂÊ£¬½µµÍÓû§µÈ´ýʱ¼ä£¬ÎÒÃÇÓ¦ÓÃÁËÔÚJava AppletÖг£¼ûµÄ¶àÏ̼߳¼Êõ¡£
¡¡
¡¡¡¡Ò»¡¢JavaÖеķþÎñÆ÷³ÌÐòÓë¶àÏß³Ì

¡¡¡¡ÔÚJava֮ǰ£¬Ã»ÓÐÒ»ÖÖÖ÷Á÷±à³ÌÓïÑÔÄܹ»Ìṩ¶Ô¸ß¼¶ÍøÂç±à³ÌµÄ¹ÌÓÐÖ§³Ö¡£ÔÚÆäËûÓïÑÔ»·¾³ÖУ¬ÊµÏÖÍøÂç³ÌÐòÍùÍùÐèÒªÉîÈëÒÀÀµÓÚ²Ù×÷ƽ̨µÄÍøÂçAPIµÄ¼¼ÊõÖÐÈ¥£¬¶øJavaÌṩÁ˶ÔÍøÂçÖ§³ÖµÄÎÞƽ̨Ïà¹ØÐÔµÄÍêÕûÈí¼þ°ü£¬Ê¹³ÌÐòԱûÓбØҪΪϵͳÍøÂçÖ§³ÖµÄϸ½Ú¶ø·³ÄÕ¡£

¡¡¡¡JavaÈí¼þ°üÄÚÔÚÖ§³ÖµÄÍøÂçЭÒéΪTCP/IP£¬Ò²Êǵ±½ñ×îÁ÷ÐеĹãÓòÍø/¾ÖÓòÍøЭÒé¡£JavaÓйØÍøÂçµÄÀ༰½Ó¿Ú¶¨ÒåÔÚjava.net°üÖС£¿Í»§¶ËÈí¼þͨ³£Ê¹ÓÃjava.net°üÖеĺËÐÄÀàSocketÓë·þÎñÆ÷µÄij¸ö¶Ë¿Ú½¨Á¢Á¬½Ó£¬¶ø·þÎñÆ÷³ÌÐò²»Í¬ÓÚ¿Í»§»ú£¬ËüÐèÒª³õʼ»¯Ò»¸ö¶Ë¿Ú½øÐмàÌý£¬Óöµ½Á¬½Óºô½Ð£¬²ÅÓëÏàÓ¦µÄ¿Í»§»ú½¨Á¢Á¬½Ó¡£Java.net°üµÄServerSocketÀà°üº¬Á˱àд·þÎñÆ÷ϵͳËùÐèµÄÒ»ÇС£ÏÂÃæ¸ø³öServerSocketÀàµÄ²¿·Ö¶¨Òå¡£

<table borderColor=#cccccc width="90%" align=center bgColor=#e7e9e9 border=1> <tr> <td>public class ServerSocket
{
¡¡public ServerSocket(int port)
¡¡throws IOException £»
¡¡public Socket accept() throws IOException £»
¡¡public InetAddress getInetAddress() £»
¡¡public int getLocalPort() £»
¡¡public void close() throws IOException £»
¡¡public synchronized void setSoTimeout (int timeout) throws SocketException £»
¡¡public synchronized int getSoTimeout() throws IOException £»
}</td></tr></table>
¡¡¡¡ServerSocket¹¹ÔìÆ÷ÊÇ·þÎñÆ÷³ÌÐòÔËÐеĻù´¡£¬Ëü½«²ÎÊýportÖ¸¶¨µÄ¶Ë¿Ú³õʼ»¯×÷Ϊ¸Ã·þÎñÆ÷µÄ¶Ë¿Ú£¬¼àÌý¿Í»§»úÁ¬½ÓÇëÇó¡£PortµÄ·¶Î§ÊÇ0µ½65536£¬µ«0µ½1023ÊDZê×¼InternetЭÒé±£Áô¶Ë¿Ú£¬¶øÇÒÔÚUnixÖ÷»úÉÏ£¬ÕâЩ¶Ë¿ÚÖ»ÓÐrootÓû§¿ÉÒÔʹÓá£Ò»°ã×Ô¶¨ÒåµÄ¶Ë¿ÚºÅÔÚ8000µ½16000Ö®¼ä¡£½ö³õʼ»¯ÁËServerSocket»¹ÊÇÔ¶Ô¶²»¹»µÄ£¬ËüûÓÐͬ¿Í»§»ú½»»¥µÄÌ×½Ó×Ö£¨Socket£©£¬Òò´ËÐèÒªµ÷ÓøÃÀàµÄaccept·½·¨½ÓÊÜ¿Í»§ºô½Ð¡£Accept()·½·¨Ö±µ½ÓÐÁ¬½ÓÇëÇó²Å·µ»ØͨÐÅÌ×½Ó×Ö(Socket)µÄʵÀý¡£Í¨¹ýÕâ¸öʵÀýµÄÊäÈë¡¢Êä³öÁ÷£¬·þÎñÆ÷¿ÉÒÔ½ÓÊÕÓû§Ö¸Á²¢½«ÏàÓ¦½á¹û»ØÓ¦¿Í»§»ú¡£ServerSocketÀàµÄgetInetAddressºÍgetLocalPort·½·¨¿ÉµÃµ½¸Ã·þÎñÆ÷µÄIPµØÖ·ºÍ¶Ë¿Ú¡£setSoTimeoutºÍgetSoTimeout·½·¨·Ö±ðÊÇÉèÖú͵õ½·þÎñÆ÷³¬Ê±ÉèÖã¬Èç¹û·þÎñÆ÷ÔÚtimoutÉ趨ʱ¼äÄÚ»¹Î´µÃµ½accept·½·¨·µ»ØµÄÌ×½Ó×ÖʵÀý£¬ÔòÅ׳öIOExceptionµÄÒì³£¡£

¡¡¡¡JavaµÄ¶àÏ߳̿ÉνÊÇJava±à³ÌµÄ¾«»ªÖ®Ò»£¬ÔËÓõõ±¿ÉÒÔ¼«´óµØ¸ÄÉƳÌÐòµÄÏìӦʱ¼ä£¬Ìá¸ß³ÌÐòµÄ²¢ÐÐÐÔ¡£ÔÚ·þÎñÆ÷³ÌÐòÖУ¬ÓÉÓÚÍùÍùÒª½ÓÊÕ²»Í¬¿Í»§»úµÄͬʱÇëÇó»òÃüÁÒò´Ë¿ÉÒÔ¶Ôÿ¸ö¿Í»§»úµÄÇëÇóÉú³ÉÒ»¸öÃüÁî´¦ÀíỊ̈߳¬Í¬Ê±¶Ô¸÷Óû§µÄÖ¸Áî×÷³ö·´Ó¦¡£ÔÚһЩ½Ï¸´ÔÓµÄϵͳÖУ¬ÎÒÃÇ»¹¿ÉÒÔΪÿ¸öÊý¾Ý¿â²éѯָÁîÉú³Éµ¥¶ÀµÄỊ̈߳¬²¢ÐжÔÊý¾Ý¿â½øÐвÙ×÷¡£Êµ¼ùÖ¤Ã÷£¬²ÉÓöàÏß³ÌÉè¼Æ¿ÉÒԺܺõĸÄÉÆϵͳµÄÏìÓ¦£¬²¢±£Ö¤Óû§Ö¸ÁîÖ´ÐеĶÀÁ¢ÐÔ¡£ÓÉÓÚJava±¾ÉíÊÇ"Ḭ̈߳²È«"µÄ£¬Òò´ËÓÐÒ»Ìõ±à³ÌÔ­ÔòÊÇÄܹ»¶ÀÁ¢ÔÚÒ»¸öÏß³ÌÖÐÍê³ÉµÄ²Ù×÷¾ÍÓ¦¸Ã¿ª±ÙÒ»¸öеÄÏ̡߳£

¡¡¡¡JavaÖÐʵÏÖÏ̵߳ķ½Ê½ÓÐÁ½ÖÖ£¬Ò»ÊÇÉú³ÉThreadÀàµÄ×ÓÀ࣬²¢¶¨Òå¸Ã×ÓÀà×Ô¼ºµÄrun·½·¨£¬Ï̵߳IJÙ×÷ÔÚ·½·¨runÖÐʵÏÖ¡£µ«ÎÒÃǶ¨ÒåµÄÀàÒ»°ãÊÇÆäËûÀàµÄ×ÓÀ࣬¶øJavaÓÖ²»ÔÊÐí¶àÖؼ̳У¬Òò´ËµÚ¶þÖÖʵÏÖÏ̵߳ķ½·¨ÊÇʵÏÖRunnable½Ó¿Ú¡£Í¨¹ý¸²¸ÇRunnable½Ó¿ÚÖеÄrun·½·¨ÊµÏÖ¸ÃÏ̵߳ŦÄÜ¡£±¾ÎÄÀý×Ó²ÉÓõÚÒ»ÖÖ·½·¨ÊµÏÖÏ̡߳£

¡¡¡¡¶þ¡¢¶àÏ̷߳þÎñÆ÷³ÌÐò¾ÙÀ ý

¡¡¡¡ÒÔÏÂÊÇÎÒÃÇÔÚÏîÄ¿ÖвÉÓõĶàÏ̷߳þÎñÆ÷³ÌÐòµÄ¼Ü¹¹£¬¿ÉÒÔÔÚ´Ë»ù´¡É϶ÔÃüÁî½øÐÐÀ©³ä¡£±¾ÀýδÉæ¼°Êý¾Ý¿â¡£Èç¹ûÔÚÏß³ÌÔËÐÐÖÐÐèÒª¸ù¾ÝÓû§Ö¸Áî¶ÔÊý¾Ý¿â½øÐиüвÙ×÷£¬ÔòӦעÒâÏ̼߳äµÄͬ²½ÎÊÌ⣬ʹͬһ¸üз½·¨Ò»´ÎÖ»ÄÜÓÉÒ»¸öÏ̵߳÷Óá£ÕâÀïÎÒÃÇÓÐÁ½¸öÀ࣬receiveServer°üº¬Æô¶¯´úÂ루main()£©£¬²¢³õʼ»¯ServerSocketµÄʵÀý£¬ÔÚaccept·½·¨·µ»ØÓû§ÇëÇóºó£¬½«·µ»ØµÄÌ×½Ó×Ö£¨Socket£©½»¸øÉú³ÉµÄÏß³ÌÀàserverThreadµÄʵÀý£¬Ö±µ½¸ÃÓû§½áÊøÁ¬½Ó¡£

<table borderColor=#cccccc width="90%" align=center bgColor=#e7e9e9 border=1> <tr> <td>//ÀàreceiveServer
import java.io.*;
import java.util.*;
import java.net.*;

public class receiveServer{
¡¡final int RECEIVE_PORT=9090; //¸Ã·þÎñÆ÷µÄ¶Ë¿ÚºÅ
¡¡//receiveServerµÄ¹¹ÔìÆ÷public receiveServer() {ServerSocket rServer=null;
¡¡//ServerSocketµÄʵÀý
¡¡Socket request=null;
¡¡//Óû§ÇëÇóµÄÌ×½Ó×ÖThread receiveThread=null;
¡¡try{
¡¡¡¡rServer=new ServerSocket(RECEIVE_PORT);
¡¡¡¡//³õʼ»¯ServerSocket System.out.println("Welcome to the server!");
¡¡¡¡System.out.println(new Date());
¡¡¡¡System.out.println("The server is ready!");
¡¡¡¡System.out.println("Port: "+RECEIVE_PORT);
¡¡¡¡while(true){ //µÈ´ýÓû§ÇëÇó request=rServer.accept(); //½ÓÊÕ¿Í»§»úÁ¬½ÓÇëÇóreceiveThread=new serverThread(request);

¡¡¡¡//Éú³ÉserverThreadµÄʵÀý
¡¡¡¡receiveThread.start();

¡¡¡¡//Æô¶¯serverThreadÏß³Ì
¡¡}
}
catch(IOException e){
¡¡System.out.println(e.getMessage()) ;
}
} public static void main(String args[]){ new receiveServer();

} //end of main} //end of class//ÀàserverThreadimport java.io.*;

import java.net.*;
class serverThread extends Thread {Socket clientRequest;
//Óû§Á¬½ÓµÄͨÐÅÌ×½Ó×ÖBufferedReader input;
//ÊäÈëÁ÷PrintWriter output;
//Êä³öÁ÷
public serverThread(Socket s) {
¡¡//serverThreadµÄ¹¹ÔìÆ÷ this.clientRequest=s;
¡¡//½ÓÊÕreceiveServer´«À´µÄÌ×½Ó×Ö InputStreamReader reader;

¡¡OutputStreamWriter writer;
¡¡try{
¡¡¡¡//³õʼ»¯ÊäÈë¡¢Êä³öÁ÷
¡¡¡¡reader=new InputStreamReader(clientRequest.getInputStream());
¡¡¡¡writer=new OutputStreamWriter(clientRequest.getOutputStream());
¡¡¡¡input=new BufferedReader(reader);
¡¡¡¡output=new PrintWriter(writer,true);
¡¡}
¡¡catch(IOException e){ System.out.println(e.getMessage());}
¡¡output.println("Welcome to the server!");
¡¡//¿Í»§»úÁ¬½Ó»¶Ó­´Ê
¡¡output.println("Now is: "+new java.util.Date()+" "+ "Port:"+clientRequest.getLocalPort());
¡¡output.println("What can I do for you?");
}

public void run(){
¡¡//Ï̵߳ÄÖ´Ðз½·¨ < BR>¡¡String command=null;
¡¡//Óû§Ö¸Áî String str=null;
¡¡boolean done=false;
¡¡while(!done){
¡¡¡¡try{
¡¡¡¡¡¡str=input.readLine();
¡¡¡¡¡¡//½ÓÊÕ¿Í»§»úÖ¸Áî
¡¡¡¡}catch(IOException e){
¡¡¡¡¡¡System.out.println(e.getMessage());
¡¡}
¡¡command=str.trim().toUpperCase();

¡¡if(str==null || command.equals("QUIT")) //ÃüÁîquit½áÊø±¾´ÎÁ¬½Ó
¡¡¡¡done=true;
¡¡else if(command.equals("HELP")){
¡¡¡¡//ÃüÁîhelp²éѯ±¾·þÎñÆ÷¿É½ÓÊܵÄÃüÁî
¡¡¡¡output.println("query");
¡¡¡¡output.println("quit");
¡¡¡¡output.println("help");
¡¡}
¡¡else if(command.startsWith("QUERY")){
¡¡¡¡//ÃüÁî
¡¡¡¡query output.println("OK to query something!");
¡¡}//else if ¡­¡­.. //Ôڴ˿ɼÓÈë·þÎñÆ÷µÄÆäËûÖ¸Áî
¡¡else if(!command.startsWith("HELP") && !command.startsWith("QUIT") && !command.startsWith("QUERY")){output.println("Command not Found!
¡¡¡¡Please refer to the HELP!"); }
}

//end of while

try
{
¡¡clientRequest.close();
¡¡//¹Ø±ÕÌ×½Ó×Ö
}
catch(IOException e){
¡¡System.out.println(e.getMessage());
}
command=null;
}

//end of run</td></tr></table>
¡¡¡¡Æô¶¯¸Ã·þÎñÆ÷³ÌÐòºó£¬¿ÉÓÃtelnet machine portÃüÁîÁ¬½Ó£¬ÆäÖÐmachineΪ±¾»úÃû»òµØÖ·£¬portΪ³ÌÐòÖÐÖ¸¶¨µÄ¶Ë¿Ú¡£Ò²¿ÉÒÔ±àдÌض¨µÄ¿Í»§»úÈí¼þͨ¹ýTCPµÄSocketÌ×½Ó×Ö½¨Á¢Á¬½Ó¡£

¡ü·µ»ØĿ¼
ǰһƪ: ¿ìËÙÓ¦ÓÃJDBC¿Ø¼þ·ÃÎÊÊý¾Ý¿â×ÊÔ´
ºóһƪ: SpringµÄºËÐÄ»úÖÆÒÀÀµ×¢Èë¼ò½é