
是不是连接没有正确关闭,或者对连接数,或者连接ip什么的有限制。
这个提示就是说连接超时了啊。设置了超时时间?吧设置去了?
看看这个,有帮助。
>
作用是将流写进服务器。
FTP就是文件传输协议。用于互联网双向传输,控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上的空间。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的 XXXX端口发送连接请求,建立一条数据链路来传送数据。 PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口 发送连接请求,建立一条数据链路来传送数据。
我当时因为连的是别人的服务器,那边换了服务器就出现这问题,后来我通过FTPClient有一个ftpcliententerLocalPassiveMode()方法,设置后就没有这问题了,不知道你是不是跟我一样
如果文件名是中文的话,报200、227、501错误,就检查服务器设置的OPTS,UTF8,是否为逗禁用命令地。全局属性第三个是否关闭。
ftp上传文件时,必须使用英文字符或数据的文件名才能上传,或者是两个字的汉字才能上传到服务器的话:
1、进入ServerU管理端界面,点击逗服务器限制和设置地分类功能按钮,
2、在ServerU服务器限制和设置界面,选择逗FTP设置地页签,点击窗口下面的逗全局设置地按钮。
3、在打开的逗FTP命令属性地界面,去掉最后一行的勾选,即不要勾选地对所有已收发的路径和文件名使用UTF-8编码逗。
4、选择逗FTP设置地页签,禁用地OPTS UTF8 逗,
完成上面的两处改变后,无法上传中文名称的文件的问题应该已经解决了。
需要转一下编码,你的java的class文家中是GBK的编码,对面linux下是iso8859-1编码
String fileNameTmp = new String(files[i]getBytes("iso-8859-1"), "GBK");//将从linux取得的文件名转换为GBK编码
String filename=fileNameTmp substring(regStrlength()+1,fileNameTmp length());
然后再把转完编码的文件名按你的要求进行截取
以上就是关于给出一个C++或Java编写的ftp服务器程序全部的内容,包括:给出一个C++或Java编写的ftp服务器程序、执行ftpclient.listfiles(path)时,文件名中如果带有中括号就无法找到文件、FtpClient等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)