最近研究了下分布式存储Fastdfs,在centOS上配置完后,使用centOS或putty连接并上传图片,然后用浏览器读取storage server返回的URL,一切正常.

但是,使用eclipse上传图片时,报错:SocketTimeOutException.

报错行为:String[] strings = storageClient.upload_file("D:\\120.jpg", "jpg", null);

网上查了将近一天,但却没有对应的解决方案, 唯一一个比较接近的说法是:tracker server的IP要用外网IP.

但是也没说很具体.

经过亲测,这种方法,对我的问题还是无法解决.

而且,Fastdfs的这个问题,在网上很少有人提及,所以研究了一下.

反复检查API代码,确认无误.

反复检查Fastdfs的配置,确认无误.

把tracker server的IP换成外网IP,然后重启storage server服务,发现卡住,无法重启.

最后反复检查配置文件,发现问题:

在storage server的conf中,第23,24行是这个:

# the storage server port
port=23000

这毫无疑问代表了storage server自己的端口号.

而,我们新装的centOS,默认开启的端口号,是很少的! 之前的80,8080,22122端口,都是自己后来手动开的.

而这个23000,很可能没有开启!!

经过确认,的确如此,开启这个端口后,eclipse中上传文件正常! junit绿条!

思考:

为什么前三个端口号能意识到并手动开启,而这个端口,却在最后才想到?

因为,在centOS或putty中调试时,前三个没开的话,就会立即出问题.

但是,第四个端口,在centOS和putty中,即使没开,也不影响上传图片或通过http访问图片的URL!

导致自己很难想到这个本身就很简单的问题.

端口查看及开启方式:

在centOS服务器或putty中:

1.查看打开的端口:

#/etc/init.d/iptables status

2.手动打开指定的端口(以23000 为例):

#/sbin/iptables -I INPUT -p tcp --dport 23000 -j ACCEPT

3.打开端口后,记得保存:

#/etc/rc.d/init.d/iptables save

原文:https://blog.csdn.net/jsflzhong/article/details/51647481

解决:使用java连接Fastdfs,上传文件时报:SocketTimeOutException的问题的更多相关文章

  1. 《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  2. 《手把手教你》系列技巧篇(五十五)-java+ selenium自动化测试-上传文件-下篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  3. java web程序上传文件,浏览器显示连接被重置

    上传文件时,到13%时浏览器显示连接被重置如图: 参考网上很多方法 比如设置server.xml 的相应大小.时间,然并没有解决问题 connectionTimeout="2000000&q ...

  4. java使用ftp上传文件

    ftpServer是apache MINA项目的一个子项目,它实现了一个ftp服务器,与vsftpd是同类产品.Filezilla是一个可视化的ftp服务器. ftp客户端也有很多,如Filezill ...

  5. c#连接SFTP上传文件

    名词解释(百度百科) sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能 ...

  6. java使用httpcomponents 上传文件

    一.httpcomponents简介 httpcomponents 是apache下的用来负责创建和维护一个工具集的低水平Java组件集中在HTTP和相关协议的工程.我们可以用它在代码中直接发送htt ...

  7. Java模拟http上传文件请求(HttpURLConnection,HttpClient4.4,RestTemplate)

    先上代码: public void uploadToUrl(String fileId, String fileSetId, String formUrl) throws Throwable { St ...

  8. JAVA调用FTP上传文件

    import java.io.File; import java.io.FileInputStream; import org.apache.commons.net.ftp.FTP; import o ...

  9. java实用技能 上传文件 等等

    1.IOS  AES对称加密,加密结果不同,问题解决 IOS http post请求,使用AFNetworing 框架,默认请求content-type为application/json ,所以无法使 ...

随机推荐

  1. ubuntu下tomcat运行不起来解决

    报错Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these enviro ...

  2. HTML头信息标签和标题标签

    <html> <!-- 头信息的作用 1. 可以设置网页的标题. 2. 可以通知浏览使用指定的码表解释html页面. --> <head> <meta htt ...

  3. mongodb游标的使用

    1.插入数据 ;i<;i++){ db.shop.insert({_id:i+,name:+i}) } 2.查看数据数 db.shop.find().count() 3.获取游标.判断是否还存在 ...

  4. mongodb增删改查操作

    Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表. show d ...

  5. linux 执行:pip3 install -r requirements.txt 报错

    错误内容: 解决办法:

  6. Python sys.argv[] 使用

    sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径;比如在CMD命令行输入 “python  test.py -help”,那么sys.argv[0]就代表“tes ...

  7. java解析和组装json以及一些方法的理解

    这是一个json格式的字符串 第一种情况(简单格式) String result = "{\"name\":\"小明\",\"age\&qu ...

  8. spring boot系列(四)spring boot 配置spring data jpa (保存修改删除方法)

    spring boot 使用jpa在pom.xml在上文中已经介绍过.在这里直接介绍各个类文件如何编写: 代码结构: domain(存放实体类文件): repository(存放数据库操作文件,相当于 ...

  9. Python核心编程练习题

    1.输入一个数值,判断是否为正数,负数,小数,以及字符串 import re def is_number(num): pattern = re.compile(r'^[-+]?[-0-9]\d*\.\ ...

  10. Android测试之查看package和activity名称的方法

    方法一:使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 1.命令行中切换到aapt.exe目录执行:aapt dump badging + 路径  ...