socket通信方式

通常使用的是socket通信模式为c/s模式,就是通过服务端创建连接,并绑定监听相关的端口,客户端通过连接至相应的端口,实现使用tcp的三次握手来进行可靠性连接,从而达到数据传输。如果对应的客户端和服务端在同一台服务器上,因是数据内部通信方式,可直接相连接。但是当我们的客户端和服务端分别部署在不同的服务器上,有时候会出现客户端连接的时候提示connect refuse,连接拒绝,的问题。这种情况是因为防火墙开启(*前提是服务端程序正常启动,并正常监听对应的端口*),说明服务端监听的端口没有放行,解决方法,而通过关闭防火墙,但是这并不是一种好的方法,因为毕竟防火墙为了保护服务器免予收到外部的攻击,从而导致服务瘫痪。为了解决该方法,可以将我们需要监听的端口配置在防火墙配置表里,让其放行服务监听的端口,这样客户端就能正常的连接至服务端,并开始的数据的发送接收处理。

如何将监听的端口配置防火墙配置表中,让其放行端口,如下所示:

(1)可以在/etc/sysconfig/iptables文件中配置将需要放行的端口进行配置,之后重启防火墙,这样该端口每次接收连接请求的时候就会进行放行,就不会拦截,导致连接被拒绝的问题。如图所示:

如上如所示,默认的放行的端口为22,可以将自己使用的端口添加至该文件中,之后重启防火墙命令:service iptables restart.

(2)直接通过命令行累添加

查看防火墙规则及编号:

iptables -nL --line-number

添加端口命令:

iptables -A INPUT -p tcp  -m state  --state  NEW  -m tcp --dport  端口号 -j  ACCEPT

保存执行的命令:

service iptalbes save

顺带介绍其他的几个参数的含义:

–A 参数就看成是添加一条规则

–p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS

–dport 就是目标端口,当数据从外部进入服务器为目标端口

–sport 数据从服务器出去,则为数据源端口使用

–j 就是指定是 ACCEPT -接收 或者 DROP 不接收

-s 禁止某个IP的访问:

例如: iptables  -A INPUT  -p  tcp  -s 192.168.1.1 -j DROP  表示禁止该IP访问该服务

-D 删除某个规则

例如: iptables -D INPUT 2  表示删除编号为2的规则、

2.  还存在一种情况是,频繁的启动服务端程序导致系统内核中的文件描述符所占用的端口,尚未被释放掉,需要等待一段时间释放改端口的占用,之后再启动方可成功启动服务。但是并不能都等待,可在编写程序的时候,设置socket地址重用,setblockopt该方法设置地址重用。

3,再试使用中必须保证c/s两端的ip和端口一致,否则依旧显示的是connection refused错误信息,该情形导致的是,客户端发送syn连接请求,因ip不匹配找不到对应的ip匹配对应的端口监听的服务端集成,连接内核会向客户端发送一个RST回应包,表示重连,表名当前的链接请求的地址不存在对应进程的服务端,客户端在接受到RST数据包,做出应答,并且抛出异常connection refused的错误信息。

socket通信显示连接被拒绝问题总结相关推荐

  1. 【踩坑】mac连接airpods显示-连接被拒绝

    问题: mac连接airpods显示 "连接被拒绝" ------------ 原因: 该airpods已经与其他apple设备连接过,所以与其他icloud账户绑定了,所以当前i ...

  2. 多路双向串口转网口上位机C++源代码带主动连接支持UDP和TCP客户端Socket通信C语言

    多路双向串口转网口上位机C++源代码带主动连接支持UDP和TCP客户端Socket通信C语言 使用说明介绍 1.功能介绍: 完成了多路网口和串口数据转换的功能. 可实现串口接收到的数据,通过网口发送出 ...

  3. Python攻防-Socket通信建立TCP反向连接

    文章目录 前言 远程控制 脚本编写 效果演示 脚本优化 getopt () 完整代码 效果演示 前言 本文将记录学习基于 Socket 通信机制建立 TCP 反向连接,借助 Python 脚本实现主机 ...

  4. socket通信时如何判断当前连接是否断开--select函数,心跳线程,QsocketNotifier监控socket...

    client与server建立socket连接之后,如果突然关闭server,此时,如果不在客户端close(socket_fd),会有不好的影响: QsocketNotifier监控socket的槽 ...

  5. socket通信需要网线连接吗_socket网络编程基础知识篇

    网络通信是一种进程间通信(IPC, Inter-Process Communication),要求位于不同网络节点不同进程的通信双方必须遵循统一的通信协议方可实现.基于套接字(Socket)通信是应用 ...

  6. java socket建立长连接_Java Web项目中使用Socket通信多线程、长连接的方法

    很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接 ...

  7. C#socket通信时,怎样判断socket双方是否断开连接

    我在Server端new了一个socket,然后bind,开了一个线程来accept前来连接的client,每接到一个client前来连接就新开一个线程和它进行通信. 我把Server端得到的sock ...

  8. 基于socket通信实现Ftp连接

    FTP 概述 文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用.FTP的目标是提高文件的共享性和可靠高效地传送数据. 在传输文件时,FTP 客户端程序先与服务器建立连接 ...

  9. android 安卓 pc 电脑 通讯,安卓利用Socket和PC通信无法连接?

    安卓利用Socket和PC通信无法连接 已经设置了 相同代码PC端和PC端通信没有问题 会在new Socket(ip,port)这里一直堵塞: 服务器代码 public ServiceThread( ...

  10. java socket 拒绝链接_ConnectException:连接被拒绝

    ConnectException:连接被拒绝我试图实现TCP连接,从服务器端一切正常运行,但是当我运行客户机程序(从客户端计算机运行)时,会出现以下错误:java.net.ConnectExcepti ...

最新文章

  1. android 游戏引擎libgdx demo cuboc分析
  2. 【Math Time 】Mean, Median, Mode 之间的区别
  3. Windows2008管理---第14章 高可用群集和QoS
  4. 蓝桥杯练习系统习题-基础训练2
  5. java的websocket_java 实现websocket的两种方式实例详解
  6. Val编程-速度因子
  7. 四大组件---Activity
  8. 【原】unity3D ios 退出保存数据
  9. mysql 删除了授权_mysql用户授权访问与删除授权
  10. 服务高可用利器——限流算法介绍与示例
  11. linux 内核之美,Linux内核 | 系统调用
  12. stm32h743单片机嵌入式学习笔记2-单片机获取电容触摸屏原理
  13. impala COMPUTE STATS 指令
  14. html布局直接填充,css实现自动填充布局
  15. 图片无缝滚动BootStrap 轻松实现
  16. web端动效 lottie-web 使用
  17. HTML做网站的顺序,做网站为什么一定要用HTML代码
  18. 数学建模速成! 两小时零基础入门 MATLAB 教程(一)—— Matlab常用操作和基本语法
  19. 爬虫——解析图书排行榜图书信息
  20. python计算上市公司股票30天的股票收益率

热门文章

  1. 15年全国电赛风力摆控制系统(一点也不难)
  2. 为什么Android项目mainactivity中有一个变量R_教我兄弟学Android逆向12 编写xpose模块...
  3. 深度卷积神经网络(一)
  4. ExtMail 参数配置指导
  5. 计算机二十四点游戏怎么玩,扑克牌二十四点怎么玩?扑克牌二十四点游戏规则介绍...
  6. DHTMLX-Grid
  7. 微信公众号订阅号开发项目小记
  8. c语言日程报告闹钟,可以闹钟提醒的日程表,日程闹钟提醒怎么弄
  9. PHP完全自学手册01.pdf
  10. cholesky分解java代码_cholesky分解