首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

服务器连接顺利、只是服务器端不接收文件内容、一直等待Socket dataSocket = serverDataSocket.accept()

2011-11-06 
服务器连接成功、只是服务器端不接收文件内容、一直等待Socket dataSocket serverDataSocket.accept()pac

服务器连接成功、只是服务器端不接收文件内容、一直等待Socket dataSocket = serverDataSocket.accept();
package   test;

import   java.io.*;
import   java.net.*;

public   class   HelloWordFTP   {
    private   static   final   int   CTRLPORT     =   21;  
    private   static   Socket   ctrlSocket;  
    private   static   PrintWriter   ctrlOutput;  
    private   static   BufferedReader   ctrlInput;
    private   static   byte[]   localHostAddress;  

    public   static   void   main(String[]   args)   {
        try   {
            String   host   =   "10.36.254.27 ";
            String   loginName   =   "eptftp ";
            String   password   =   "ept ";
            String   dirName   =   "/Inetpub/ftproot/userhome/Localuser/eptftp ";
            String   fileName   =   "C:\\temp\\Seikyusyo.txt ";

         
            ctrlSocket   =   new   Socket(host,   CTRLPORT);
            System.out.println( "dd ");
            localHostAddress   =   ctrlSocket.getLocalAddress().getAddress();
            ctrlOutput   =   new   PrintWriter(ctrlSocket.getOutputStream());
            ctrlInput   =   new  
                BufferedReader(new   InputStreamReader(ctrlSocket.getInputStream()));

            ctrlOutput.println( "USER   "   +   loginName);
            ctrlOutput.flush();
            ctrlOutput.println( "PASS   "   +   password);
            ctrlOutput.flush();

            ctrlOutput.println( "CWD   "   +   dirName);
            ctrlOutput.flush();
            ctrlOutput.println( "TYPE   I ");
            ctrlOutput.flush();
            System.out.println( "write   begin ");
 
            FileInputStream   fis   =   new   FileInputStream(fileName);
            Socket   dataSocket   =   dataConnection( "STOR   "   +   fileName);
            OutputStream   outstr   =   dataSocket.getOutputStream();
            int   n;
            byte[]   buff   =   new   byte[1024];
           

            while   ((n   =   fis.read(buff))   >   0)   {
                outstr.write(buff,0,n);


                System.out.println(n);
            }
            dataSocket.close();
            fis.close();
            System.out.println( "write   end ");


            ctrlOutput.close();
            ctrlInput.close();
            ctrlSocket.close();
        }catch   (Exception   e)   {
            e.printStackTrace();
        }
    }

    private   static   Socket   dataConnection(String   ctrlcmd)  
            throws   IOException,UnknownHostException   {
        String   cmd   =   "PORT   ";
        ServerSocket   serverDataSocket   =   new   ServerSocket(0,1);
        for   (int   i=0;i <4;i++)   {
            cmd   =   cmd   +   (localHostAddress[i]   &   0xff)   +   ", ";
        }
        cmd   =   cmd   +   (((serverDataSocket.getLocalPort())/256)   &   0xff)
                            +   ", "
                            +   (serverDataSocket.getLocalPort()   &   0xff);

        ctrlOutput.println(cmd);
        ctrlOutput.flush();
        ctrlOutput.println(ctrlcmd);
        ctrlOutput.flush();

        Socket   dataSocket   =   serverDataSocket.accept();
        serverDataSocket.close();
        return   dataSocket;

    }
}

[解决办法]
Socket类继承线程类。
[解决办法]
你的数据发送到21端口,你的服务器端在哪监听呢??

ServerSocket serverDataSocket = new ServerSocket(0,1); //????

热点排行