关于java ftp程序

关于java ftp程序,第1张

链接超时 connect 19行

main 26行

看看调用什么东西, 最后加上一个条件来判定一下。比如说调用取到的null,可以判断if为null就不做这件事

FTP的工作原理是在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用TCP传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的。

在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。

但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

扩展资料

FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。

在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口。

而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

参考资料来源:百度百科-ftp

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分。

1、FTP服务器。

2、FTP客户端。

其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。

扩展资料

FTP屏蔽了各计算机系统的细节,因而适合在异构网络中任意计算机之间传送文件。FTP只提供文件传送的一些基本服务,它使用TCP可靠地运输服务,FTP主要功能是减小或消除在不同系统下处理文件的不兼容性。

FTP使用客户端-服务器模型,一个FTP服务器进程可以为多个客户进程提供服务。FTP服务器有两大部分组成:一个主进程,负责接受新的请求;还有若干从属进程,负责处理单个请求。

参考资料来源:百度百科—FTP协议

方法如下:

*** 作设备:戴尔笔记本电脑

*** 作系统:win7

*** 作程序:管理选项10

一、首先选择“管理选项”打开“本地用户和组”可以在列表中看到用户选项,如下图所示

二、然后从下拉菜单中选择新用户,开始构建填写用户名和密码,如下图所示:

三、之后找到“控制面板”选项并将其打开,如下图所示:

四、单击下面的卸载程序按钮进入安装程序列表界面,如下图所示:

五、在左上角的菜单栏中打开或关闭Windows,单击进入,如下图所示:

六、转到Windows功能界面打开或关闭,勾选其子菜单的FTP服务和FTP可扩展性,然后单击按下OK按钮,如下图所示:

七、添加IIS服务后,单击Internet信息服务管理 - 此时我们可以看到连接右框架,如下图所示:

八、然后右键单击该网站以选择添加网站,如下图所示:

九、然后在d出的添加网站框中输入我们的网站名称,然后选择添加,如下图所示:

十、创建我们的FTP后,启动绑定和SSL设置,端口号选择2121IP地址填写本地IP地址,如下图所示:

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemNet;

using SystemIO;

namespace FTPClient

{

class FtpClient

{

#region 属性、构造函数

public string FtpURL

{

get;

set;

}

public string FtpUser

{

get;

set;

}

public string FtpPwd

{

get;

set;

}

public string UpLoadFile

{

get;

set;

}

public string downLoadFile

{

get;

set;

}

private FtpType ftpType = FtpTypeOther;

public delegate void ExecMsg(object sender,string message,bool isEnd);

public event ExecMsg execMsg;

public FtpClient()

{

}

public FtpClient(string ftpUrl, string ftpUser, string ftpPwd)

{

FtpURL = stringIsNullOrEmpty(ftpUrl) FtpURL : ftpUrl;

FtpUser = stringIsNullOrEmpty(ftpUser) FtpUser : ftpUser;

FtpPwd = stringIsNullOrEmpty(ftpPwd) FtpPwd : ftpPwd;

}

private void OnExecMsg(object sender,string value,bool isEnd)

{

if (execMsg != null)

{

execMsg(sender, value, isEnd);

}

}

#endregion

#region Get Server File List

internal void DownLoadDirectory(string serverDirectory, string localDirectory,FileType fileType)

{

List<string> files = GetServerFileList(serverDirectory);

foreach (string file in files)

{

string fileName = PathGetFileName(file);

DownLoadFile(serverDirectory, localDirectory, fileName, fileName, fileType);

}

}

internal List<string> GetServerFileList(string serverDirectory)

{

List<string> serverFileList = new List<string>();

ftpType = FtpTypeOther;

FtpWebRequest reqFtp = ConnectFtp(serverDirectory);

reqFtpMethod = WebRequestMethodsFtpListDirectory;

using (WebResponse response = reqFtpGetResponse())

{

using (StreamReader reader = new StreamReader(responseGetResponseStream()))

{

string line = readerReadLine();

while (line != null)

{

serverFileListAdd(line);

line = readerReadLine();

}

}

}

return serverFileList;

}

#endregion

#region DownLoad

public void DownLoadFile(string serverDirectory, string localDirectory, string serverfileName, string localFileName,FileType fileType)

{

OnExecMsg(null, stringFormat("Start download file : {0}",serverfileName), false);

downLoadFile = PathCombine(localDirectory, stringIsNullOrEmpty(localFileName) serverfileName : localFileName);

if (!DirectoryExists(localDirectory))

{

DirectoryCreateDirectory(localDirectory);

}

if (FileExists(downLoadFile))

{

FileDelete(downLoadFile);

}

FileCreate(downLoadFile)Dispose();

FtpWebRequest reqFtp = ConnectFtp(serverDirectory + "/" + serverfileName);

reqFtpMethod = WebRequestMethodsFtpDownloadFile;

using (FtpWebResponse response = (FtpWebResponse)reqFtpGetResponse())

{

#region FileType is Text

if (FileTypeTextEquals(fileType))

{

using (StreamReader ftpStream = new StreamReader(responseGetResponseStream()))

{

StringBuilder values = new StringBuilder();

int count = 0;

bool isEnd = ftpStreamEndOfStream;

while (!isEnd)

{

valuesAppend(ftpStreamReadLine() + "\n");

count++;

isEnd = ftpStreamEndOfStream;

if (count > 50000 || isEnd)

{

FileAppendAllText(downLoadFile, valuesToString(), EncodingDefault);

valuesRemove(0, valuesLength);

count = 0;

}

}

}

}

#endregion

#region FileType is Binary

else

{

using (Stream ftpStream = responseGetResponseStream())

{

int bufferSize = 2048;

int readCount;

byte[] buffer = new byte[bufferSize];

readCount = ftpStreamRead(buffer, 0, bufferSize);

using (FileStream outputStream = new FileStream(downLoadFile, FileModeCreate))

{

while (readCount > 0)

{

outputStreamWrite(buffer, 0, readCount);

readCount = ftpStreamRead(buffer, 0, bufferSize);

}

}

}

}

#endregion

}

OnExecMsg(null, stringFormat("End download file : {0}", serverfileName), true);

}

#endregion

#region UpLoad

internal void UploadFolder()

{

}

internal void UploadFile(string file)

{

ftpType = FtpTypeUpLoad;

FileInfo fileInfo = new FileInfo(file);

FtpWebRequest reqFtp = ConnectFtp(file);

reqFtpMethod = WebRequestMethodsFtpUploadFile;

reqFtpContentLength = fileInfoLength;

int buffLength = 2048;

byte[] buff = new byte[buffLength];

int contentLen;

using (FileStream fs = fileInfoOpenRead())

{

using (Stream strm = reqFtpGetRequestStream())

{

contentLen = fsRead(buff, 0, buffLength);

while (contentLen != 0)

{

strmWrite(buff, 0, contentLen);

contentLen = fsRead(buff, 0, buffLength);

}

strmClose();

fsClose();

}

}

}

#endregion

private FtpWebRequest ConnectFtp(string serverDirectory)

{

ParameterValidate();

FtpWebRequest reqFtp = (FtpWebRequest)FtpWebRequestCreate(new Uri(FtpURLTrim()+"/"+serverDirectory));

reqFtpUseBinary = true;

reqFtpCredentials = new NetworkCredential(FtpUser, FtpPwd);

reqFtpKeepAlive = false;

return reqFtp;

}

private void ParameterValidate()

{

StringBuilder validateMsg = new StringBuilder();

validateMsgAppend(stringIsNullOrEmpty(FtpURL) "ftpURL is Empty" : "");

validateMsgAppend(stringIsNullOrEmpty(FtpUser) "ftpUser is Empty" : "");

validateMsgAppend(stringIsNullOrEmpty(FtpPwd) "ftpPwd is Empty" : "");

if (FtpTypeUpLoadEquals(ftpType))

{

validateMsgAppend(FileExists(UpLoadFile) "file not find" : "");

}

else if (FtpTypeDownLoadEquals(ftpType))

{

validateMsgAppend(FileExists(downLoadFile) "file is have" : "");

}

if (!stringIsNullOrEmpty(validateMsgToString()))

throw new Exception("Err:" + validateMsgToString());

}

}

}

java界面?纯java程序吗,还是jsp。纯java程序的话,需要引入javaneturl包。

try{getAppletContext()showDocument(new URL(">

以上就是关于关于java ftp程序全部的内容,包括:关于java ftp程序、简述FTP的工作原理、什么叫“ ftp”啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9840204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存