最近研究了下分布式存储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. flutter textfield设置高度后内容区无法居中?

    textfiled 设置高度后,内容永远无法居中,最后找到原因 decoration: 中有一个 contentPadding属性,设置这个属性对应的Padding值即可

  2. oracle 导入关键字说明

    关键字 说明(默认) ----------------------------------------- UserId 用户名/口令 Full     导入整个文件(N) Buffer 数据缓冲区的大 ...

  3. 解决FTP服务器上中文名文件下载后为空的问题

    转: 解决FTP服务器上中文名文件下载后为空的问题 2017年07月20日 15:19:21 代码的寂寞 阅读数 2428  版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

  4. shader飞线改进版

    项目github地址:https://github.com/ecojust/flyline 前面写过一个飞线(基于THREE.Line进行的颜色变化),只是简单地将可视区片元颜色的alpha通道值设为 ...

  5. python数据存储--JSON

    HTML正文存储为两种格式:JSON和CSV. 存储为JSON: 首先利用Requests访问http://seputu.com获取HTML文档: #!coding:utf-8 import requ ...

  6. python 脚本带参数

    如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys参数个数:len(sys.argv)脚本名:    sys.argv[0]参数 ...

  7. django中聚合aggregate和annotate GROUP BY的使用方法

    接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小的时候还可以,但是如果数据量很大,而且查询比较复 ...

  8. Unity* 实体组件系统 (ECS)、C# 作业系统和突发编译器入门

    Unity* 中的全新 C# 作业系统和实体组件系统不仅可以让您轻松利用以前未使用的 CPU 资源,还可以帮助您更高效地运行所有游戏代码.然后,您可以使用这些额外的 CPU 资源来添加更多场景动态和沉 ...

  9. Elasticsearch的选举

    一.bully算法  经过以下几个步骤   1.启动节点ping协调器,获取当前集群状态(节点信息,集群名称等),如果协调器没有启动一直到ping通为止   2.无论能ping通,都会拿到对象acti ...

  10. 配置传统vlan间路由

    S1#SH RUN spanning-tree mode pvst ! interface FastEthernet0/1 switchport access vlan 10 switchport m ...