链接超时 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”啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)