
Socket网络编程
网络编程
Worthy_Wang
一辈子没办法做太多事情,所以每一件都要做到精彩绝伦。
展开
-
Linux 事件触发器eventfd的使用以及C++封装
文章目录前言:为什么需要eventfd?eventfd 设计原理eventfd测试用例C++ 封装eventfd前言:为什么需要eventfd?在我们之前的学习中,进行进程/线程间通信的方法有两个:条件变量需要使用锁,线程的互斥,唤醒等机制,使用此方法来进行通信实在是很麻烦;管道管道的特点在于传送信息,并且会产生两个文件描述符,也是同样的麻烦。于是乎,eventfd便产生了,通过同一个文件描述符,能够快速的进行进程/线程间的通信。eventfd 设计原理其实简单一点看eve原创 2020-07-10 20:39:31 · 1702 阅读 · 0 评论 -
Linux 定时器timerfd的使用与C++封装
文章目录前言:为什么需要定时器timerfd?timerfd 设计原理timerfd 测试用例C++封装timerfd前言:为什么需要定时器timerfd?在多线程中,设置一个超时时间,当时间超时时,就会触发事件,这样的操作如果是我们自己做,那么需要使用到<time.h> 和 <sys/time.h> 中的API进行不断地更新时间,再判断有没有超时,如果超时再找到对应的触发事件。这样的操作很复杂,而且在多线程中容易出错,所以便有了timerfd.timerfd 设计原理原创 2020-07-10 20:10:57 · 1367 阅读 · 0 评论 -
开源项目 聊天室
github地址:聊天室整体实现后的效果如下:根据技术实现不同,分为四个文件;1.select_pipe_ChatRoom技术包含:命名管道、Linux下文件操作、IPC共享内存、IO多路复用select使用命名管道只能双人通信.2.select_Tcp_ChatRoom技术包含:Socket编程、TCP通信、IO多路复用select3.select_Udp_ChatRoom技术包含:Socket编程、Udp通信、IO多路复用select4.epoll_Tcp_ChatRoom原创 2020-06-03 20:53:43 · 1644 阅读 · 5 评论 -
Socket网络编程:TCP连接与UDP连接
文章目录socket编程概述一.TCP通信服务端详细流程客户端详细流程案例:服务端与客户端进行TCP通信二.UDP通信socket编程概述Linux网络编程实质上就是socket编程,IP地址可以确定一个主机,端口号可以确定主机中的一个进程,socket = IP + port(端口号)这样便确定了主机中运行的进程,网络通信实质上就是进程通信。我们知道连接分为两种,可靠的TCP连接与不可靠的UDP连接,下面分别通过这两种连接来熟悉socket编程.一.TCP通信服务端:socket ->原创 2020-06-03 18:34:41 · 964 阅读 · 0 评论 -
Linux网络编程:主机字节序 与 网络字节序
网络字节序 与 主机字节序文章目录网络字节序 与 主机字节序前言字节序转化1.主机字节序 ——> 网络字节序2.网络字节序 ——> 主机字节序域名转换IP地址前言首先需要理解 大端模式 与 小端模式这两个点:这两种模式代表着数据在内存中是如何存放的,我们直到,一个字节能够存放8位,如果是超过8位的数据该怎样存放呢?如需要存放数据 0x12345678大端模式存放:0x12345678小端模式存放: 0x78563412不难看出,大端模式也就是高位优先存放,小端模式也就是低位原创 2020-06-03 16:54:40 · 556 阅读 · 0 评论