草庐IT

tcp-accept

全部标签

C++ TCP/IP 关于tcp断线重连的问题

在工控上经常用到tcp连接,比如串口服务器或某些支持modbustcp协议的仪表等,以前尽量使用串口服务器的虚拟串口功能,现在逐步使用上了tcpserver或tcpclient模式。搜索了个C++的tcp断线重连的案例(http://www.cnblogs.com/kingdom_0/articles/2571727.html),使用这个的原因还因其使用的是收发多线程。server和client都很全,也许是作者的疏忽,client出现了明显的bug。如果掉线了,client的send和recv将重新建两个socket。所以send和recv两个线程中的socket必须以指针形式传入,其次关闭

TCP的三次握手与四次挥手

首先,源端口号和目标端口号是不可少的,这一点和UDP是一样的。如果没有这两个端口号。数据就不知道应该发给哪个应用。接下来是包的序号。为什么要给包编号呢?当然是为了解决乱序的问题。不编好号怎么确认哪个应该先来,哪个应该后到呢。编号是为了解决乱序问题。还应该有的就是确认序号。发出去的包应该有确认,要不然我怎么知道对方有没有收到呢?如果没有收到就应该重新发送,直到送达。这个可以解决不丢包的问题。对于TCP来讲,IP层你丢不丢包,我管不着,但是我在我的层面上,会努力保证可靠性。通过对TCP头的解析,我们知道要掌握TCP协议,重点应该关注以下几个问题:顺序问题,稳重不乱;丢包问题,承诺靠谱;连接维护,有

TCP网络连接异常情况的处理

    在网络连接中,经常会出现一些意外情况,导致TCP连接不能正常工作,对于这些意外情况,TCP内部有自己的解决方法一.进程崩溃    在网络通讯时可能会出现进程突然崩溃的情况,当进程崩溃后进程就没了,就会导致进程的进程控制块(PCB)也被摧毁,而进程控制块中的一个属性”文件描述符表“也就被释放了,文件描述符表中有Socket网卡文件,将Socket网卡文件释放后相当于调用Socket.close(),于是崩溃的这一方就发出FIN(结束报文段)请求断开连接,就进一步触发了四次挥手,此时连接就正常释放了,所以,进程崩溃的处理和进程正常退出的处理没有区别        关于进程推荐看Java多进

FFmpeg报错:Connection to tcp://XXX?timeout=XXX failed: Connection timed out

一、现象通过FFmpeg(FFmpeg的版本是5.0.3)拉摄像机的rtsp流获取音视频数据,执行命令:./ffmpeg-timeout3000000-i"rtsp://172.16.17.156/stream/video5"报错:Connectiontotcp://XXX?timeout=XXXfailed:Connectiontimedout。二、Wireshark抓包分析执行FFmpeg命令的本机ip为192.168.16.13,摄像机的ip为172.16.17.156。通过Wireshark抓包可以发现,执行上述命令时,TCP三次握手失败,出现“TCPRetransmission”:这

Python之TCP网络编程

目录1.python3编码转换2.TCP网络应用程序开发2.1概述2.2开发流程 2.3TCP客户端程序开发2.4TCP服务端程序开发2.5注意点3.socket之send和recv原理4.案例1.python3编码转换1.网络传输是以二进制数据进行传输的。2.数据转化用到了encode和decode函数:str.encode(encoding="utf-8")bytes.decode(encoding="utf-8")2.TCP网络应用程序开发2.1概述1.TCP网络应用程序开发分为客户端程序开发和服务端程序开发。2.主动发起建立连接请求的是客户端程序。3.等待接受连接请求的是服务端程序。2

【ESP8266 (12F)】Wi-Fi通信与TCP/IP协议栈(测试文章)

测试文章:ESP8266是一款低成本的Wi-Fi芯片,它可以实现无线网络的连接和通信。本文将介绍ESP8266的Wi-Fi通信功能和TCP/IP协议栈的使用方法。文章目录一、Wi-Fi通信1.1STA模式1.2AP模式1.3STA+AP模式二、TCP/IP协议栈三、实验步骤四、总结一、Wi-Fi通信Wi-Fi是一种无线局域网技术,它可以让设备在一定范围内通过无线电波进行数据传输。Wi-Fi遵循IEEE802.11标准,目前常见的有802.11b/g/n等协议。不同的协议有不同的频率、速率和兼容性。ESP8266支持802.11b/g/n协议,可以工作在2.4GHz频段。它可以作为一个Wi-Fi

HAProxy代理TCP(使用HAProxy 为TiDB-Server 做负载均衡)

目录一、使用HAProxy为TiDB-Server做负载均衡环境1、创建文件夹2、配置haproxy.cfg3、创建docker-compose.yaml文件haproxy.cfg配置说明[参照官方文档](https://pingcap.com/docs-cn/v3.0/reference/best-practices/haproxy/"参照官方文档")一、使用HAProxy为TiDB-Server做负载均衡安装docker-compose环境IP:192.168.180.46系统:CentOS7Core:8核HAProxy版本2.0.6服务器IPhostnameHAProxy192.168.

Serial/TCP/NTRIP通信

1串口通信串口通讯串口通信详解串口通信中的4大参数含义Qt串口通信的简单demo2TCP通信TCP协议简介TCP协议详细介绍TCP协议(全面)IP地址和端口号的详解3NTRIP通信Ntrip通讯协议1.0什么是Ntrip?Ntrip协议简介TCP高并发数据转接服务器(NtripCaster)4驱动驱动是什么5linuxttyLinuxTTY子系统(1)-了解TTYlinuxTTY子系统(2)-软件框架linuxTTY子系统(3)-ttydriver

TCP协议的拥塞控制

前言    在TCP协议中,为了防止当传输数据量过多从而造成网络拥堵的情况,因从,采用拥塞控制、流量控制等方法来避免出现这种情况。流量控制:流量控制是TCP协议特有的功能,TCP协议规定接收方与发送方都有一块固定的缓冲空间,而发送的数据量大小由接收方所控制,当接收方来不及处理发送方的数据时,就会通知发送方降低发送效率,以此来达到流量控制的目的。拥塞控制:拥塞控制也是TCP协议特有的功能,拥塞控制重要是通过慢开始、拥塞避免、快重传、快恢复这四个算法来避免产生拥塞。解决方向:流量控制是为了让接收方能及时接受数据,而拥塞避免是为了降低整个网络的拥塞程度。 控制的四个算法    我们知道TCP主要通过

接口协议之抓包分析 TCP 协议

TCP协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。环境准备对接口测试工具进行分类,可以如下几类:网络嗅探工具:tcpdump,wireshark代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy分析工具:curl,postman,chromeDevtool抓包分析TCP协议tcpdumptcpdump是一款将网络中传送的数据包的“头”完全截获下来提供分析的工具。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句去掉无用的信息。让tcpdump时刻监听443端口,如果有异样就输入到log文件