网络编程
n大橘为重n
/* 一个有点小情怀的码农 */
展开
-
netstat命令查看 进程占用的端口 以及某个端口是否被占用
1 查看进程占用的端口(需要用到进程的pid)[root@localhost ~]# netstat -ntlp | grep 1221tcp 0 0 0.0.0.0:8750 0.0.0.0:* LISTEN 1221/./bin/sub_vid进程1221 占用端口8750;2 查看某个端口是否被占用[root@localhost ~]# netstat -ntlp | grep 8750t...原创 2021-02-20 17:46:32 · 4337 阅读 · 0 评论 -
TCP流量控制-滑动窗口机制
TCP窗口机制TCP header中有一个Window Size字段,它其实是指接收端的窗口,即接收窗口。用来告知发送端自己所能接收的数据量,从而达到一部分流控的目的。其实TCP在整个发送过程中,也在度量当前的网络状态,目的是为了维持一个健康稳定的发送过程,比如拥塞控制。因此,数据是在某些机制的控制下进行传输的,就是窗口机制。窗口缩放因子(Window Scaling)以前,window size最大为2的16次方,为65535,随着宽带不断提高,65535字节已经小了,为了突破限.转载 2020-09-03 10:07:32 · 2434 阅读 · 0 评论 -
TCP拥塞控制算法分析
TCP拥塞避免拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。超时重传机制超时重传机制主要是为了解决数据包在传输过程中丢失的问题。TCP每发送一个报文段,就会为这个报文段开启一个定时器,如果定时器溢出时仍然没有收到接收端的应答报文,那么TCP就认为这个报文段在传输过程中丢失,然后重新发送这个报文段。这便是超时重传机制举例:客户端请求发送”and hi”报文段时启动了定时器,..原创 2020-09-03 09:33:28 · 1343 阅读 · 0 评论 -
网络编程——C++实现socket通信(TCP)高并发之epoll模式
相关链接:TCP连接与释放、网络编程——C++实现socket通信(TCP)相关函数:服务端:socket()bind()listen()epoll_create() 高并发poll模式epoll_ctl()epoll_wait()accept()read() 或 recv()等write() 或 send()等close()客户端:socket()connect()write() 或 send()等read() 或 recv()等close()着重说明下epol原创 2020-06-29 14:15:49 · 6249 阅读 · 2 评论 -
epoll中epoll_data_t 中fd和ptr的用法
文章是网上内容总结,为了自己下次好找,所以写到自己博客里边了。typedef union epoll_data {void *ptr;int fd;__uint32_t u32;__uint64_t u64;} epoll_data_t;struct epoll_event {__uint32_t events; /* Epoll events /epoll_data_t data; / User data variable */};epoll_data中fd存放文件描述符,所以我们一转载 2020-06-26 20:36:12 · 2099 阅读 · 0 评论 -
epoll详解及优点
epoll详解更详细的讲解-->【Linux学习】epoll详解什么是epoll? epoll是为处理大批量句柄而作了改进的poll, 是性能最好的多路I/O就绪通知方法; 只有三个系统调用: epoll_create, epoll_ctl, epoll_wait; epoll_ctl - epoll的事件注册函数,它不同于select()是在监听事件时告诉内核要监听什么类型的事件,而是在这里先注册要监听的事件类型; epoll的工作原理 epoll同样只告知那些就绪的文件描转载 2020-06-26 18:22:15 · 2413 阅读 · 0 评论 -
网络编程——C++实现socket通信(TCP)高并发之poll模式
相关链接:TCP连接与释放、网络编程——C++实现socket通信(TCP)相关函数:服务端:socket()bind()listen()poll() 高并发poll模式accept()read() 或 recv()等write() 或 send()等close()客户端:socket()connect()write() 或 send()等read() 或 recv()等close()着重说明下poll函数用法。跟select功能类似,可以设置的同时监听上限会更多,原创 2020-06-19 16:43:49 · 1588 阅读 · 0 评论 -
网络编程——C++实现socket通信(TCP)高并发之select模式
相关链接:TCP连接与释放、网络编程——C++实现socket通信(TCP)相关函数:服务端:socket()bind()listen()FD_ZERO()等辅助函数select() 高并发select模式accept()read() 或 recv()等write() 或 send()等close()客户端:socket()connect()write() 或 send()等read() 或 recv()等close()着重说明下select函数及辅助函数用法说明。原创 2020-06-18 11:35:22 · 3408 阅读 · 1 评论 -
网络编程——C++实现socket通信(TCP)
相关链接:TCP连接与释放相关函数:服务端:socket()bind()listen()accept()read()write()close()客户端:socket()connect()write()read()close()注意:每当服务端连接断开后,废话不多说,上源码!服务端TCP_Server.cpp#include <stdio.h>#include <sys/types.h>#include <sys/socket.h原创 2020-06-10 16:09:23 · 14218 阅读 · 3 评论 -
Linux环境下C++访问web服务——使用libcurl库调用http接口发送解析json数据
一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符串。所以我们主要做的就是:连接远程url、找到接口,将基本类型的数据封装成json数据传入接口,然后获取返回值,并解析返回的json数据。 这里需要用到的库就有url库、json库,大致了解了,...原创 2019-12-06 16:57:43 · 1668 阅读 · 0 评论 -
TCP连接与释放——三次握手和四次挥手(详解+动图)
背景描述我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。IP协议虽然能把数据报文送到目的主机,但是并没有交付给主机的具体应用进程。而端到端的通信才应该是应用进程之间的通信。UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认。虽然UDP不提供...转载 2018-07-22 18:12:32 · 6180 阅读 · 0 评论 -
网络协议——七层、五层、四层协议概念及功能分析
一、7层7层是指OSI七层协议模型,主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。 OSI是Open System Interconnect的缩写,意为开放式系统互联。 OSI七层参考模型...原创 2018-07-21 20:31:17 · 27275 阅读 · 2 评论