[Socket] Connect失败,显示Connection refused

【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。 ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的 阅读详情

处于通用性考虑,对原先的socket进行了去安卓化

 

原有实现:

服务器端句柄获取:

android_get_control_socket(SOCKET_NAME)

 

客户端句柄获取:

fd = socket_local_client(SOCKET_NAME,
                            ANDROID_SOCKET_NAMESPACE_RESERVED,
                            SOCK_STREAM );


init.rc里实现如下:

socket SOCKET_NAME stream 660 root radio

 

客户端由系统其他模块启动

 

******************************************************************************************************************************************************************************************************

修改后

全部采用通用化做法

服务器端:socket -> bind -> listen -> select -> accetp

客户端:socket -> connect

 

这回客户端启动方式修改为自启动

客户端进程在rc中采用service的形式,如下

service SOCKET_CLIENT_SERVICE system/bin/socket_client_service
user XXX
oneshot
class main

 

运行之后,客户端大概率报 connection refused

第一怀疑就是会不会是客户端进程权限不够。于是手动kill客户端进程,并手动敲命令启动,发现这回可以启动。

于是将客户端对应的service的user XXX直接去除,这样,service的默认user就是root。

重启之后,发现第一连接成功,以为问题已经解决,重试若干次之后,发现问题依旧。

 

仔细对比可以发现,修改前后的最大差别就是客户端启动的时间。

通过上网查阅,发现,connect失败之后,socket句柄处于未知状态。可以在man手册中查阅到相关信息

connect(3) - Linux man page
If connect() fails, the state of the socket is unspecified. Conforming applications should close the file descriptor and create a new socket before attempting to reconnect.

 

于是,尝试在connect失败后,close 当前句柄,重新创建,  验证修改有效

阿里云ECS服务器CentOS6.5vnc连接时报错Failed to connect to socket /tmp/dbus-xxxxxxx: Connection refused 问题: 通过tightvnc远程连接阿里云服务器CentOS6.5,一直都可以正常连接,突然开始报错: Failed to connect to socket /tmp/dbus-xxxxxxx: Connection refused 排查: 搜了一堆文章,改来改去,这种情况依然存在,包括但不限于: 卸载重装所有图形界面模块 卸载重装dbus 重启messagebus 重启hald... 阅读详情

相关推荐

failed to connect to bus: 没有那个文件或目录

通常这个socket文件位于 /var/run/dbus/dbus-bus 或 /var/run/messagebus/messagebus。报错信息 “failed to connect to bus: 没有那个文件或目录” 通常表示系统服务尝试连接到系统消息总线(System Message Bus)时失败了,这可能是因为消息总线服务没有运行或者服务的socket文件不存在。执行 systemctl restart messagebus 或 systemctl restart dbus 来重启服务。

太极淘的博客 6818

linux 错误 —— Failed to connect to busbus error

我觉得有必要记录一下这个问题 虽然我还没有找到解决方案,上次遇到这个问题,是因为磁盘空间满了,但是这次强制重启后发现磁盘空间是正常的。 发生过程:我正在查看数据库,同时也在跑模型训练(使用桌面远程连接至服务器),突然桌面断开了,然后我尝试重新连接,黑屏。接着,我的数据库也断开了,重新连接后提示下面错误: 此时,我使用ssh连接至服务器是可以连接的,但是我使用了几个命令,例如:nvidia-smi查看我的训练任务是否正常,结果该进程不见了;尝试使用service xrdp restart,提示Failed

Warmer_Sweeter 1万+

解决WSL2中Ubuntu-22.04找不到bus的错误

对于必须依赖这个包的程序有用,能正常运行的可以不装。

jiexijihe945的博客 8443

Connection refused: connect问题解决方案集合

1)端口号被占用:杀死占用端口号(一般为8080)的进程,释放端口;彻底关闭 Tomcat 服务器,或者重新启动项目。 2)使用以下命令检查服务器中允许的最大进程数: ulimit -u。如果将此值设置为较低值,例如1024,则使用以下值将其增加到131072或无限制:ulimit -u 131072 或者 ulimit -u无限制 。 3)客户端和服务器,它们中的任何一个或两个都不在网络中。它们可能没有连接到LAN或互联网或任何其他网络,在这种情况下,Java将会抛出客户端的“ java.net.Conn

qq_34823218的博客 25万+

Connection refused)| error 111: (111) Connection refused

这里B作为服务器,IP和端口是公开的,A是我们要下手的目标,IP当然知道,但A的源端口就不清楚了,因为这可能是A随机生成的。之后,序号的值会不断的增加,比如原来的序号是100,如果这个TCP包的数据有10个字节,那么下次的TCP包序号会变成110。滑动窗口用于加速传输,比如发了一个seq=100的包,理应收到这个包的确认ack=101后再继续发下一个包,但有了滑动窗口,只要新包的seq与没有得到确认的最小seq之差小于滑动窗口大小,就可以继续发。由于带宽和不同机器处理能力的不同,TCP要能控制流量。

4132

Linux 下socket编程 connect()函数返回-1(error:Connection refused

一、背景 系统:CentOS7 64位 物理机 IP:192.168.2.199/24 使用端口:9999 二、问题描述 在tty1上运行服务器程序,在tty2上运行客户端程序 若连接成功,则服务器程序会向客户端程序发送“Hello World!”字符串。 服务端正常监听,但是客户端在连接时却连接不上,connect()函数返回-1。 服务端部分代码 int main(int argc, ch...

须鲸艺场 2万+

TCP/IP:连接服务器失败(错误原因:Connection refused

TCP/IP:连接服务器失败(错误原因:Connection refused) Linux中,通过系统调用(system call) connect 连接指定服务器建立TCP连接。 connect 最常见的失败原因是 Connection refused。 假设服务器IP是192.168.44.148,且并 未有 进程监听端口是12500时: 若有TCP连接请求包到达192.16...

test1280 30万+

java.net.ConnectException: Connection refused: connect

context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8081/provider/echo/8090": Connection refused: connect; nested except

weixin_61097676的博客 4473

android socket econnrefused,Android socket connection refused error

I want to implement socket connection between 2 deceives , client keep sending GPS data to the server and I need both of it run in new thread , the client send first one data then keep show error lik...

weixin_32139169的博客 280

【网络】连接服务器失败(错误原因:Connection refused)| error 111: (111) Connection refused 原因分析

服务器拒绝原因: connect 发起TCP连接请求被拒绝是由于目标服务器上无对应的监听套接字(IP && PORT)。(没有监听、无法创建、监听别的IP\端口……) 有几个可能性: 服务器没启动或未监听端口(用TCP工具连一下你的服务器,看下服务器是否正常监听端口。如果是Windows开发者也可以使用Windows的CMD命令行telnet测试下,格式是telnet 地址 端口); 地址错误; 端口错误; 类型错误; 内存不足; 被防火墙拦截。 摘自:【Pytho...

我的笔记本 22万+

Failed to connect to socket /tmp/dbus-xxxxxxx: Connection refused

安装anaconda3之后出现问题 通过tightvnc远程连接服务器CentOS6.5/7,一直都可以正常连接,突然开始报错: Failed to connect to socket /tmp/dbus-xxxxxxx: Connection refused 关于anaconda的启动关闭 现在,在我禁止anaconda开机执行bashrc内的有关命令后,重启了好几次服务器,发现可以直接执行conda命令,不需要额外操作。 如果重启服务器后,需要用conda时,发现找不到conda,则可以执行 . /us

Love_yy123的博客 3868

微信小程序 connection refused

这两天在自学微信小程序,刚学在调用一个接口是,(showapi上的接口),本来前一天用的好好的,然后第二天不行了,自己查了一下,接口url、api、秘钥什么的都没错,也没过期,但是一直报connection refused,然后上网查也没有人遇到,很是奇怪,不过,自己后来算是发现了,系统问题,第二天又突然好了,其实,中间自己新建了秘钥什么的有时候也突然可以的。...

不会功夫的茶的博客 3828

socket Connect refused

使用socket进行网络编程的时候,客户端使用connect函数去连接服务器的时候,有时候会出现Connection refused的错误。 这种错误的两个原因(目前我所碰到的)是: 1.服务器没有启动相应的端口进行监听。 2.服务器存在防火墙,阻止了当前访问。 现对第二种情况进行解决: 1.在系统安装了类似于firewall等软件的情况下,根据对应的软件命令或者规则来进行调整

nia305的博客 2万+

配置centos7解决 docker Failed to get D-Bus connection 报错

配置centos的docker容器时,在里面安装mysql数据库 yum -y install mariadb* systemctl start mariadb.service # 运行到这条报错 systemctl enable mariadb.service 当时我配置项目服务器,调用了systemctl命令启动服务,报错。原因及解决方式: 这个的原因是因为dbus-daemon没能

好小葱1的博客 5万+

Connection refused问题总结

发现是安全拦截导致,因为在安全的IP封禁里面的规则对于别人是不可见的,部分出口防火墙的公网被安全封禁,在开发人员你那边是不清楚底层网络通信被转了几手,中间通过了哪些个节点,所以可以询问下网络同事。权限无问题,请检查应用。步骤1、在x.x.x.1上:ping x.x.x.2,查看是否有丢包(packet loss),1%以上确认中间网络的链路就有丢包故障。步骤2:在x.x.x.1上:telnet x.x.x.2 80,查看response速度,正常应该是瞬间返回,人为几乎感知不到延迟。

阿拉斯加大闸蟹的博客 1万+

不能连接到D-BUS守护进程

ssh Client failed to connect to the D-BUS daemon GConf-WARNING **: Client failed to connect to the D-BUS daemon: Failed to connect to socket /tmp/dbus-*****: Connection refused   Add the followi

xzhang76 6064

java socket connect_Java socket出现Connection refused: connect错误,怎么解决?

[Java] 纯文本查看 复制代码package 这里自己命名;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) {//接收客户端发来的数据 最大2048 字节byte b...

weixin_42462603的博客 2881

三种方法解决git拒绝连接问题fatal: unable to access xxxx: Failed to connect to xxxx : Connection refused

git clone 拒绝连接,Connection refused 解决方法 一、使用env指令查询系统代理并取消对应http代理 二、使用git config指令查询代理并取消代理 三、直接修改.gitconfig配置文档查询代理并取消代理 git clone经常出现代理错误,报错如下: fatal: unable to access 'https://github.com/xbg/myproject.git/': Failed to connect to 127.0.0.1 port 8888: 拒绝

lvmengzou的专栏 17万+
上一篇: SOCK_STREAM和SOCK_DGRAM两种数据类型
SuperCora
博客等级 码龄12年 2粉丝 3原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值