ÓÃJavaʵÏÖFTP·þÎñÆ÷
FTP(File Transfer Protocol Îļþ´«ÊäÐÒé)ÊÇInternet ÉÏÓÃÀ´´«ËÍÎļþµÄÐÒé¡£ÔÚInternetÉÏͨ¹ýFTP ·þÎñÆ÷¿ÉÒÔ½øÐÐÎļþµÄÉÏ´«(Upload)»òÏÂÔØ(Download)¡£FTPÊÇʵʱÁª»ú·þÎñ£¬ÔÚʹÓÃËü֮ǰ±ØÐëÊǾßÓи÷þÎñµÄÒ»¸öÓû§(Óû§ÃûºÍ¿ÚÁî)£¬¹¤×÷ʱ¿Í»§¶Ë±ØÐëÏȵǼµ½×÷Ϊ·þÎñÆ÷Ò»·½µÄ¼ÆËã»úÉÏ£¬Óû§µÇ¼ºó¿ÉÒÔ½øÐÐÎļþËÑË÷ºÍÎļþ´«Ë͵ÈÓйزÙ×÷£¬Èç¸Ä±äµ±Ç°¹¤×÷Ŀ¼¡¢ÁÐÎļþĿ¼¡¢ÉèÖô«Êä²ÎÊý¼°´«ËÍÎļþµÈ¡£Ê¹ÓÃFTP¿ÉÒÔ´«ËÍËùÓÐÀàÐ͵ÄÎļþ£¬ÈçÎı¾Îļþ¡¢¶þ½øÖÆ¿ÉÖ´ÐÐÎļþ¡¢Í¼ÏóÎļþ¡¢ÉùÒôÎļþºÍÊý¾ÝѹËõÎļþµÈ¡£
¡¡¡¡FTP ÃüÁî
¡¡¡¡FTP µÄÖ÷Òª²Ù×÷¶¼ÊÇ»ùÓÚ¸÷ÖÖÃüÁî»ù´¡Ö®Éϵġ£³£ÓõÄÃüÁîÓУº
¡¡¡¡¡ô ÉèÖô«Êäģʽ£¬Ëü°üÀ¨ASC¢ò(Îı¾) ºÍBINARY ¶þ½øÖÆÄ£Ê½;
¡¡¡¡¡ô Ŀ¼²Ù×÷£¬¸Ä±ä»òÏÔʾԶ³Ì¼ÆËã»úµÄµ±Ç°Ä¿Â¼(cd¡¢dir/ls ÃüÁî);
¡¡¡¡¡ô Á¬½Ó²Ù×÷£¬openÃüÁîÓÃÓÚ½¨Á¢Í¬Ô¶³Ì¼ÆËã»úµÄÁ¬½Ó£»closeÃüÁîÓÃÓڹرÕÁ¬½Ó;
¡¡¡¡¡ô ·¢ËͲÙ×÷£¬putÃüÁîÓÃÓÚ´«ËÍÎļþµ½Ô¶³Ì¼ÆËã»ú£»mput ÃüÁîÓÃÓÚ´«ËͶà¸öÎļþµ½Ô¶³Ì¼ÆËã»ú;
¡¡¡¡¡ô »ñÈ¡²Ù×÷£¬getÃüÁîÓÃÓÚ½ÓÊÕÒ»¸öÎļþ£»mgetÃüÁîÓÃÓÚ½ÓÊÕ¶à¸öÎļþ¡£
¡¡¡¡±à³Ì˼·
¡¡¡¡¸ù¾ÝFTP µÄ¹¤×÷ÔÀí£¬ÔÚÖ÷º¯ÊýÖн¨Á¢Ò»¸ö·þÎñÆ÷Ì×½Ó×ֶ˿ڣ¬µÈ´ý¿Í»§¶ËÇëÇó£¬Ò»µ©¿Í»§¶ËÇëÇó±»½ÓÊÜ£¬·þÎñÆ÷³ÌÐò¾Í½¨Á¢Ò»¸ö·þÎñÆ÷·ÖỊ̈߳¬´¦Àí¿Í»§¶ËµÄÃüÁî¡£Èç¹û¿Í»§¶ËÐèÒªºÍ·þÎñÆ÷¶Ë½øÐÐÎļþµÄ´«Ê䣬Ôò½¨Á¢Ò»¸öеÄÌ×½Ó×ÖÁ¬½ÓÀ´Íê³ÉÎļþµÄ²Ù×÷¡£
¡¡¡¡±à³Ì¼¼ÇÉ˵Ã÷
¡¡¡¡1.Ö÷º¯ÊýÉè¼Æ
¡¡¡¡ÔÚÖ÷º¯ÊýÖУ¬Íê³É·þÎñÆ÷¶Ë¿ÚµÄÕìÌýºÍ·þÎñÏ̵߳Ĵ´½¨¡£ÎÒÃÇÀûÓÃÒ»¸ö¾²Ì¬×Ö·û´®±äÁ¿initDir À´±£´æ·þÎñÆ÷Ïß³ÌÔËÐÐʱËùÔڵŤ×÷Ŀ¼¡£·þÎñÆ÷µÄ³õʼ¹¤×÷Ŀ¼ÊÇÓɳÌÐòÔËÐÐʱÓû§ÊäÈëµÄ£¬È±Ê¡ÎªCÅ̵ĸùĿ¼¡£
¡¡¡¡¾ßÌåµÄ´úÂëÈçÏ£º
public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//¼àÌý21ºÅ¶Ë¿Ú
ServerSocket s = new ServerSocket(21);
for(;;){
//½ÓÊܿͻ§¶ËÇëÇó
Socket incoming = s.accept();
//´´½¨·þÎñÏß³Ì
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}
2. Ïß³ÌÀàµÄÉè¼Æ
¡¡¡¡Ïß³ÌÀàµÄÖ÷ÒªÉè¼Æ¶¼ÊÇÔÚrun()·½·¨ÖÐʵÏÖ¡£ÓÃrun()·½·¨µÃµ½
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
Ò»£ºJ2SE ÃæÏò¶ÔÏó£·â×°¡¢¼Ì³Ð¡¢¶à̬
ÄÚ´æµÄ·ÖÎö
µÝ¹é
¼¯ºÏÀà¡¢·ºÐÍ¡¢×Ô¶¯´ò°üÓë½â°ü¡¢Annotation
IO
¶àÏ̡߳¢Ïß³Ìͬ²½
TCP/UDP
AWT¡¢Ê¼þÄ£ÐÍ¡¢ÄäÃûÀà
ÕýÔò±í´ïʽ
·´Éä»úÖÆ
2£ºÊý¾Ý¿â£¨Oracle»òÕßMySQL£©
SQLÓï¾ä
¶à±íÁ¬½Ó£¬ÄÚÍâÁ¬½Ó£¬ ×Ó²éѯµÈ
¹ÜÀí±í¡¢ÊÓͼ¡¢Ë÷Òý¡¢ÐòÁС¢Ô¼ÊøµÈ
Ê÷×´½á¹¹´æ´¢
´æ´¢¹ý ......
SCJP5ѧϰ±Ê¼Ç
Ò»¡¢²Ù×÷ϵͳÖÐÏ̺߳ͽø³ÌµÄ¸ÅÄî
ÏÖÔڵIJÙ×÷ϵͳÊǶàÈÎÎñ²Ù×÷ϵͳ¡£¶àÏß³ÌÊÇʵÏÖ¶àÈÎÎñµÄÒ»ÖÖ·½Ê½¡£
½ø³ÌÊÇÖ¸Ò»¸öÄÚ´æÖÐÔËÐеÄÓ¦ÓóÌÐò£¬Ã¿¸ö½ø³Ì¶¼ÓÐ×Ô¼º¶ÀÁ¢µÄÒ»¿éÄÚ´æ¿Õ¼ä£¬Ò»¸ö½ø³ÌÖпÉÒÔÆô¶¯¶à¸öÏ̡߳£±ÈÈçÔÚWindowsϵͳÖУ¬Ò»¸öÔËÐеÄexe¾ÍÊÇÒ»¸ö½ø³Ì¡£
Ïß³ÌÊÇÖ¸½ø³ÌÖеÄÒ ......
±¾ÏîÄ¿Óõ½µÄ¼¼ÊõÊÇssh£¬ajax¿ò¼Üdwr£¬¹¤×÷Á÷µÈ
Óöµ½µÄÎÊÌâÊÇÒµÎñÁ÷³Ì²»ÊìϤ£¬¼¼ÊõÉϺÍÍŶӳÉÔ±ÓÐЩ²î¾à£¨µ«ÎÒÏàÐÅ×Ô¼º»áÍê³ÉÈÎÎñ£©
sqlÓï¾äµÄ±àд
˼·ÎÊÌ⣬ֻҪÓÐ˼·£¬¾Í»áÓз½·¨£¬×öÈí¼þÒ²ÐèÒªÆæË¼ÃîÏë°¡¹þ¹þ£»
¿ª·¢¹ý³ÌÒ²ÊDz»¶ÏѧϰµÄ¹ý³Ì£»
×î½üÓöµ½ÁËÒ»¸ösessionºÍdatabase²»Í¬²½µÄÎÊÌ⣬½â¾öµÄ·½·¨Êǽ« ......
¡¡¡¡inkfishÔ´´£¬ÇëÎðÉÌÒµÐÔÖÊ×ªÔØ£¬×ªÔØÇë×¢Ã÷À´Ô´£¨http://blog.csdn.net/inkfish£©¡£
¡¡¡¡ÕâÀïºöÂÔÁËjar£¬ÒòΪjarʵÖÊÉÏÊôÓÚzipѹËõ¡££¨À´Ô´£ºhttp://blog.csdn.net/inkfish£©
JDK ZLIBѹËõ£º£¨À´Ô´£ºhttp://blog.csdn.net/inkfish£©
package study.inkfish.compress;
import java.io.BufferedInputStream;
import ......