进程通信
文章平均质量分 82
水杯爱喝水
这个作者很懒,什么都没留下…
展开
-
zmq--概述-1
一、zmq概念 zmq(zeroMQ, zero-message-queue)看起来像一个可嵌入的网络库,但是却像一个并发框架,可重用的消息传递系统。 跨过程,IPC,TCP,TIPC,多播传送消息。 智能模式,例如pub-sub,push-pull和router-dealer。 小型库中的高速异步I / O引擎。 支持每种现代语言和平台。 构建任何架构:集中式,分布式,小型或大型二、为什么需要zmq 如今,许多应用程序由跨某种网络(局域网或Internet)延伸的...原创 2021-05-02 21:53:06 · 6647 阅读 · 0 评论 -
网络文件传输函数--sendfile
sendfile函数在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,这被称为零拷贝,sendfile函数的定义如下:#include <sys/sendfile.h>ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count)out_f...原创 2019-05-13 08:59:36 · 1049 阅读 · 0 评论 -
高级IO--readv与writev
原 网络编程(18)—— 使用readv和writev函数批量的进行数据的发送和读取 2016年10月14日 14:18:24 HymanLiuTS 阅读数:1786更多 <div class="tags-b...转载 2019-05-13 08:41:38 · 214 阅读 · 0 评论 -
UNIX域套接字编程
简介UNIX 域套接字(UDS):UNIX Domain socket。Unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通讯的一种方式,单个主机上执行通信,也就是所谓的进行间通信(IPC),所以Unix域套接字协议可以视作IPC方法之一。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain S...原创 2019-05-11 16:56:05 · 614 阅读 · 0 评论 -
SIGURG带外数据
带外数据 带外数据用于迅速告知对方本端发生的重要的事件。它比普通的数据(带内数据)拥有更高的优先级,不论发送缓冲区中是否有排队等待发送的数据,它总是被立即发送。带外数据的传输可以使用一条独立的传输层连接,也可以映射到传输普通数据的连接中。实际应用中,带外数据是使用很少见,有,telnet和ftp等远程非活跃程序。 UDP没有没有实现带外数据传输,TCP也没有真正的带外数据。不过TCP利用...原创 2019-05-15 22:04:24 · 507 阅读 · 4 评论 -
Linux 信号 --- SIGPIPE
往一个读端关闭的管道或socket连接中写数据将引发SIGPIPE信号。我们需要在代码中捕捉并处理该信号,或者至少忽略它,因为程序收到SIGPIPE的默认行为是结束进程。引起SIGPIPE信号的写操作将设置errno为EPIPE。 我们可以使用send函数的MSG_NOSIGNAL标志来禁止写操作触发SIGPIPE,在这种情况下,我们应该使用send函数的反馈的er...原创 2019-05-15 16:25:14 · 606 阅读 · 0 评论 -
Linux 信号 --- 统一事件源
信号是一中异步事件:信号处理函数和程序的主循环是两条不同的执行路线。信号处理函数需要尽可能快地执行完毕,以确保该信 号不会被屏蔽(信号在处理期间,系统不会再触发它)太久。一种典型的解决方案是:把信号的主要处理逻辑放到程序的朱循环中,当信号函数被触发时,他只是简单地通知主循环程序接收信号,并把信号值传递给主循环,主循环再根据接收到的信号值执行目标信号对应的逻辑代码。 信号处理函数通常...原创 2019-05-15 16:04:00 · 446 阅读 · 4 评论 -
关于PF_INET和AF_INET的区别
在写网络程序的时候,建立TCP socket:sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。相关头文件中的定义:AF = Address FamilyPF = Protocol FamilyAF_INET = ...转载 2019-05-15 12:02:02 · 344 阅读 · 0 评论 -
Linux 信号
先讨论在程序中发送信号和处理信号,然后讨论Linux支持的信号种类,再详细探讨其中和网络密切相关的几个信号。一、信号概述1.1 信号来源Linux 信号来源分三个角色,用户,其他进程和操作系统。用户:Ctrl+C给前端进程发送一个中断信号系统异常:非法内存访问,浮点异常系统状态变化:alarm定时器到期引其SIGALRM信号其他进程:kill命令或者kill函数发送信号...原创 2019-05-15 11:35:49 · 88 阅读 · 0 评论 -
Linux 服务器程序规范
一、规范内容Linux服务器除通信外,通常还必须考虑许多其他细节问题,这些细节问题涉及面广且零碎,而且基本上是模板式的,所以我们称之为服务器规范。Linux 服务器一般在后台以守护进程的方式运行。即没有终端,不接收用户输入。守护进程的父进程通常是init进程。 Linux 服务器通常有一套日志系统,可以输出日志到文件中。 Linux 服务器一般以某个专门的非root身份运行。比如nys...原创 2019-05-14 09:06:56 · 414 阅读 · 0 评论 -
多进程---为子进程收尸
僵尸进程僵尸进程:子进程结束运行后,父进程读取退出状态前,我们称该子进程处于僵尸态。父进程结束或者异常终止,而子进程继续运行,在父进程退出之后,子进程退出之前,该子进程处于僵尸态。waitpid如果父进程没有正确处理子进程的返回信息,子进程都将停留在讲师态,并占据着内核资源。这是绝对不容许的,毕竟内核资源有限。waitpid在父进程中调用,以等待子进程的结束,并获取子进程的返回信息,从而避...原创 2019-05-09 09:52:11 · 713 阅读 · 1 评论 -
多进程--execl
有时我们需要在子进程中执行其他程序,即替换当前进程映像,这就需要exec系列,今天试用一下execl函数原型:int execl(const char *path, const char *arg, …);第一个参数必须是完整路径且包含文件名,第二个参数为文件名excel 调用后,excel之后的代码不会被执行,因为子进程中代码被替换excel 函数不会关闭原进程打开的文件描述符,除非...原创 2019-05-08 20:08:55 · 573 阅读 · 0 评论 -
IP地址格式
使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理。IP地址其实有三种不同的表示格式,关于这一点,如果你还不知道,亦或对相关的知识还有所迷惑,本文对你将会有很大的帮助。Ascii(网络点分字符串)- 网络地址(32位无符号整形,网络字节序,大头) 主机地址 (主机字节序) IP地址是IP网络中数据传输的依据,转载 2017-05-15 18:38:12 · 75983 阅读 · 0 评论 -
进程间的几种通信方式概述
进程间通信IPC------Inter-Process Communication由于内存管理的一些机制,导致两个进程间并不能直接的进行通信(在独立的用户空间),因此我们需要利用一些介质来完成两个进程之间的通信。以下是常用的进程间通信方式。# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。转载 2016-12-27 13:21:51 · 396 阅读 · 0 评论