linux网络编程
coffee-123
这个作者很懒,什么都没留下…
展开
-
linux系统下实现文件拷贝
linux系统下实现文件的方式原创 2017-07-28 21:41:15 · 4115 阅读 · 2 评论 -
linux进程利用mmap映射区通信
linux进程利用mmap映射区通信原创 2017-07-28 19:43:21 · 242 阅读 · 0 评论 -
进程
以前,进程是最小的运行单位;有了线程之后,线程成为最小的运行单位,而进程则是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(指令和数据)的真正运行实例。多个进程可与同一个程序相关联,而每个进程则是以同步或异步的方式独立运行的。进程结构一般由3部分组成:代码段、数据段和堆栈段。代码段是用于存放程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码...原创 2019-06-07 20:18:36 · 234 阅读 · 0 评论 -
linux进程间通信
进程pcb与文件描述符在进程间完成数据传递需要借助操作系统提供特殊的方法,如:文件、管道、信号、共享内存、消息队列、套接字、命名管道等。随着计算机的蓬勃发展,一些方法由于自身设计缺陷被淘汰或者弃用。常用的进程间通信方式有:管道(使用最简单) 信号(开销最小) 共享映射区(无血缘关系) 本地套接字(最稳定)(1)利用文件进行通信a.有血缘关系:父子进程间通过文件通信,理论依...原创 2019-08-13 23:17:53 · 212 阅读 · 0 评论 -
多线程
进程是包含程序指令和相关资源的集合,每个进程和其他进程一起参与调度,竞争CPU、内存等系统资源。每次进程切换,都存在进程资源的保存和恢复动作,这称为上下文切换。进程的引入可以解决多用户支持的问题,但是多进程系统也在如下方面产生了新的问题:进程频繁切换引起的额外开销可能会严重影响系统性能。进程间通信要求复杂的系统级实现。同一个进程内部的多个线程,共享的是同一个进程的所有资源。比如,与每个进程独有...转载 2019-06-07 15:56:13 · 288 阅读 · 0 评论 -
线程池
1.线程池原理线程池由两个生产者和消费者组合而成,客户向任务队列添加任务,客户是生产者,任务队列是消费者;工作线程从任务队列中取任务,此时任务队列是生产者,线程池是消费者。(1)初始化一些线程管理者线程:不处理任务工作线程:从任务队列领取任务并执行(2)管理者线程如果线程使用率超过一定比率,按一定步长创建新的线程;当空闲线程增多,销毁一定数量的线程。(3)线程工...转载 2019-04-27 21:51:13 · 131 阅读 · 0 评论 -
Linux网络编程基础
一、典型协议传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议,FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常见协议有ARP协议、RARP协议。 TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP用户数据报协议(User Datag...转载 2019-03-16 16:29:36 · 745 阅读 · 0 评论 -
Socket编程
套接字概念Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。套接字的内核实现...转载 2019-03-17 19:48:50 · 816 阅读 · 0 评论 -
高并发服务器
多进程并发服务器client.c/* client.c */#include <stdio.h>#include <string.h>#include <unistd.h>#include <netinet/in.h>#include <arpa/inet.h>#include "wrap.h"#define ...转载 2019-03-27 20:05:46 · 455 阅读 · 0 评论 -
epoll
1.基础概念epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就...转载 2019-03-31 11:01:06 · 210 阅读 · 0 评论 -
udp通信
1.UDP模型UDP处理模型由于UDP不需要维护连接,程序逻辑简单了很多,但是UDP协议是不可靠的,保证通讯可靠性的机制需要在应用层实现。client.c#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#inclu...转载 2019-03-31 21:54:23 · 397 阅读 · 0 评论 -
广播和组播
1.广播广播在局域网,使用UDP协议server端程序#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>#inclu...转载 2019-04-01 22:09:46 · 261 阅读 · 0 评论 -
本地套接字
1.基本概念socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个...转载 2019-04-01 22:52:59 · 170 阅读 · 0 评论 -
libevent学习(一)
1.libevent的特点事件驱动,高性能;轻量级,专注于网络;跨平台,支持 Windows、Linux、Mac Os等;支持多种 I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等;支持 I/O,定时器和信号等事件;2.libevent安装与使用官方网站:http://libevent.org/ 下载安装包tar -zxvf ...转载 2019-04-14 15:35:15 · 599 阅读 · 0 评论 -
epoll反应堆模型
1.标准epoll结构体struct epoll_event { uint32_t events; epoll_data_t data;};typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64;} epoll_data_t;2.epoll反...转载 2019-04-09 22:21:01 · 162 阅读 · 0 评论 -
libevent学习(二)bufferevent
1.数据缓冲区buffereventbufferevent可以看成有缓冲区的event,缓冲区内部用队列实现,头文件event2/bufferevent.hbufferevent是libevent为IO缓冲区操作提供的一种通用机制。bufferevent 由一个底层的传输端口(如套接字 ),一个读取缓冲区和一个写入缓冲区组成。与通常的事件在底层传输端口已经就绪,可以读取或者写入的时候执行...转载 2019-04-14 20:20:52 · 1078 阅读 · 0 评论