![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unix网络编程
文章平均质量分 82
chen_song_
人终将被年少不可得之物质而困其一生
展开
-
计算机网络题
1、网络协议主要要素为_________。【答案】语法、语义、同步。2、一座大楼内的一个计算机网络系统,属于________。【答案】LAN。3、随着电信和信息技术的发展,国际上出现了所谓“三网融合”的趋势,下列属于三网之一的是(ABC)A.传统电信网 B.计算机网C.有线电视网 D.卫星通信网4、通信系统必须具备的三个基本要素是( C )A、终端、电缆、计算机B、信号发生器、通信线路、信号接收设备C、信源、通信媒体、信宿D、终端、通信设施、接收设备5、计算机网络通信系统是(原创 2021-02-03 01:03:04 · 3215 阅读 · 1 评论 -
redis源码分析之主从同步源码分析
=====================================================redis源码学习系列文章:redis源码分析之sha1算法分析redis源码分析之字典源码分析redis源码分析之内存编码分析intset, ziplist编码分析redis源码分析之跳跃表redis源码分析之内存淘汰策略的原理分析redis源码分析之对象系统源码分析strin...原创 2019-10-26 17:43:13 · 559 阅读 · 0 评论 -
Linux网络编程之IO复用(select函数的使用)
fd_set 文件描述符集合 位图 struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ };int select(int nfds, fd_set *readfds, ...原创 2017-10-31 23:22:46 · 650 阅读 · 0 评论 -
UDP通信的Connect分析
一, UDP是不可靠传输的udp 要实现可靠传输 就要在上层应用层实现, TCP的滑动窗口的机制在服务器端 发送数据 会启动一个计时器 , 计时是否超出时间 , 超出就从新发送数据 这里有一个 延时 的情况是 怎么发生呢 是客户端接收到数据又从新把计时器置为0 这种情况会延时二, udp中’握手’在udp中要想找到服务器是否启动 或者 发送次数很多的时候可以 调用 co...原创 2018-05-28 01:14:27 · 835 阅读 · 0 评论 -
boost库asio源码分析之io_service
前言任务队列的的调度的使用正文一, boost库asio io_service 的介绍io_servie是接口类,为实现跨平台,采用了策略模式,所有接口均有impl_type实现。根据平台不同impl_type分为win_iocp_io_service Win版本的实现,这里主要分析Linux版本。task_io_service 非win平台下的实现,其代码结构为:detail/t...原创 2019-01-24 21:07:01 · 3679 阅读 · 3 评论 -
socket选项
前言socket选项正文一, sockopt参数设置socket的参数的函数 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, vo...原创 2019-02-02 00:57:46 · 549 阅读 · 0 评论 -
突破FD_SETSIZE限制的连接数之boost库的asio的中fd_set的适配器的设计
前言这个也我在公司的使用自己写库clib中在win上连接服务器时中只能连接63个的客户端,这个我一开始还以为是自己的配置文件中配置问题呢 就没有注意这个问题。 直到最近自己服务器上业务写完了, 需要压力测试时, 这个问题我可查有几天, 一开始我以为是自己编码中写死了呢, 为什么这样说呢! 在我的知识体系中select最大连接数是1024, 我找很长时间 最后在发现在win 上 FD_SETS...原创 2019-06-16 23:21:30 · 918 阅读 · 0 评论 -
Libevent的事件驱动源码分析(二)
前言libevent线程是不安全的, 现在服务器都是多核的如何充分使用cpu就要使用多线程。正文一, 谈谈libevent如何使用多线程呢我们在上学的时候, 经常去学校的食堂吃饭。 有几种情况1, 一个窗口排队等待打饭一个窗口就相当于我们网络中io单线程的处理, 不会出现惊群效应(linux 3.0+ epoll这个问题已经解决了) ,这个效率会比较底下, 学生排队的时间过长2, 多...原创 2019-07-04 23:22:41 · 476 阅读 · 0 评论 -
ping的原理的解析和 ICMP协议, 网络工具
前言最近和同事测试网络带宽问题, 分析网络稳定性的问题时,在网上没有找到合适工具, 我发现网上测试网络带宽的原理都是ping一样的原理就研究一下ping工具一直是我们使用测量网络是否相通。它的应用有很多,比如我们经常测试网络的带宽,网络安全,使用ICMP攻击使服务器繁忙,DOS攻击正文一, ping的原理介绍ping使用协议在网络ISO中那一层ping使用ICMP在网络层, 有IP头...原创 2019-08-30 08:00:55 · 3082 阅读 · 2 评论 -
TCP状态转换图-[CLOSE_WAIT状态错误分析和解决方法(网络连接无法释放)]
CLOSE_WAIT状态出现时机有一端主动关闭socket链接, 在没有关闭socket链接的一端出现CLOSE_WAIT状态, 主动关闭socket的一端出现了FIN_WAIT_2状态, 在主动关闭socket一端没有收到被动关闭一端的响应会等待73秒后关闭, 而被动关闭有会有大量CLOSE_WAIT状态 的原因是没有关闭socket连接(网络连接无法释放)服务端有大量CLOSE_WAIT状态,原创 2018-02-12 23:09:56 · 2809 阅读 · 0 评论 -
负载均衡策略
负载均衡设备作为纵跨网络2-7层协议的设备,往往放置在网络设备和应用设备的连接处,对工程师在网络和应用基本知识方面的要求远高于其他设备,所以我们要在基本功能的理解上下更多的功夫。负载均衡设备还有另外一个称呼:4/7层交换机,但它首先是个2-3层交换机,这要求我们首先掌握2-3层的基本知识,然后才是本文介绍的内容。服务器负载均衡有三大基本Feature:负载均衡算法,健康检查和会话保持,这三个F转载 2018-01-05 20:37:54 · 8047 阅读 · 0 评论 -
web服务器(epoll)
一,http的协议http协议 - 应用层 - 请求消息(Request) - 浏览器给服务器发 ○ 四部分: 请求行, 请求头, 空行, 请求数据 § 请求行: 说明请求类型, 要访问的资源, 以及使用的http版本 § 请求头: 说明服务器要使用的附加信息,多个键值对 § 空行: 空行是必须要有的原创 2017-11-09 00:35:45 · 466 阅读 · 1 评论 -
unix网络编程第三版环境配置
一,配置 wget http://www.unpbook.com/unpv13e.tar.gz cp unpv13e.tar.gz /home cd /hometar -xvf unpv13e.tar.gz cd unpv13e/ ./configure make cd lib make cd ../libfree/ make vim inet_ntop.c make原创 2017-10-15 21:30:44 · 494 阅读 · 0 评论 -
Linux网络编程( epoll的边缘触发和水平触发) 多路IO 高并发服务器
一,epoll函数不管是select还是poll,都是需要遍历数组,轮询。select支持1024个客户端以下的并发服务器足够,select 在大量并发,少量活跃的情况下效率比较低。推荐使用epoll模型epoll也可以突破 1024限制 ,不跨平台。 epoll的函数介绍创建 epoll的树根int epoll_create(int size); ○ size 大小 ,节原创 2017-11-01 23:45:37 · 539 阅读 · 0 评论 -
linux网络编程(epoll反应堆)
一,epoll反应堆结构 二,epoll编程/************************************************************************* > File Name: server_epoll_btree.c > Author: songli > QQ: 2734030745 > Mail: 15850774503原创 2017-11-02 23:13:32 · 773 阅读 · 0 评论 -
网络通信- 父子进程的通信(本地通信)
本地套接字使用 struct sockaddr_un ; bind的时候仍然需要强转 创建套接字需要使用 AF_UNIX ,AF_UNIX, AF_LOCAL创建套接字的type可以选择TCP,也可以选择UDP,但是如果选择TCP,那么必须按照TCP的流程进行通信,如果选择UDP,必须按照UDP的流程进行通信。一, client#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;std原创 2017-11-04 00:00:41 · 927 阅读 · 0 评论 -
fastDFS的配置nginx的http请求
资料放上余庆老师的fastDFS的结构图一, 安装fastDFS和http的nginx请求下载fastDFS的插件nginx的版本 编译nginx添加依赖库命令: ./configure –with-openssl=../openssl-1.0.1t –with-zlib=../zlib-1.2.11 –with-pcre=../pcre-8.40 –add-module=/home/song原创 2017-12-20 22:34:13 · 1980 阅读 · 0 评论 -
流媒体服务器搭建
一, 环境准备 1, ffmpeg 2, pcre-8.40.tar.gz 3, zlib-1.2.11 4, nginx-rtmp-module-1.2.0 5, nginx-1.12.2.tar.gz 6, OpenSSL_1_1_0g.tar.gz 7, spawn-fcgi-1.6.4.tar.gz ——–fastCGI 8, fcgi-2.4原创 2017-12-19 15:49:17 · 792 阅读 · 0 评论 -
http协议的分析
一, http协议http协议 - 应用层 - 请求消息(Request) - 浏览器给服务器发 ○ 四部分: 请求行, 请求头, 空行, 请求数据 § 请求行: 说明请求类型, 要访问的资源, 以及使用的http版本 § 请求头: 说明服务器要使用的附加信息 § 空行: 空行是必须要有的, 即使没有原创 2017-12-19 15:55:51 · 783 阅读 · 0 评论 -
TCP的三次交手四次回首
一, 三路握手建立一个TCP连接时会发生下述情形。① 服务器必须准备好接受外来的连接。这通常通过调用socke心bind和listen这3个函数来完成, 我们称之为被动打开(passive open)。② 客户通过调用connect发起主动打开(active open)。这导致客户TCP发送一个SYN(同步)分节, 它告诉服务器客户将在(待建立的) 连接中发送的数据的初始序列号。 通常SYN分原创 2018-01-03 20:58:17 · 761 阅读 · 0 评论 -
Liunx的socket通讯的流程图分析
一, socket服务端和客户的通信流程二,分析代码的实现1,这边我说的转换网络的ip地址其实是01010的数字封装在网络层的int inet_pton(int af, const char *src, void *dst); // 转换网络的ip地址uint32_t htonl(uint32_t hostlong); //ip地址数字转换成网络ip地址的uint16_t htons(u原创 2017-10-19 00:22:04 · 722 阅读 · 0 评论