通过Python脚本理解系统进程间通信

from socket import *  #导入socket包中的所有内容
from time import ctime #导入time包,同时在本地可使用ctime进行调用
import os,sys #导入os,sys包
HOST='localhost' #定义主机
PORT=21567 #定义端口
BUFSIZ=1024 #定义缓冲区
ADDR=(HOST,PORT) #定义元组

tcpSerSock=socket(AF_INET,SOCK_STREAM)  #生成socket
tcpSerSock.bind(ADDR) #将地址及端口元组与socket绑定
tcpSerSock.listen(5) #监听用户请求

r,w=os.pipe()  #定义管道,进程间通信就靠他了!

while True: #定义无限循环
print "waiting ...."  #打印等待用户输入时的waiting
try: #检测可能的异常
tcpCliSock,addr=tcpSerSock.accept() #处理用户请求
os.write(w,"f") #在管道一侧写入字符“f”
except: #处理异常
sys.exit(0) #如果发生异常将直接退出
if os.fork():  #在父进程中的处理
pass #跳过处理
else: #在子进程中的处理
print 'con from :',addr #打印客户端信息
while True: #定义无限循环
data=tcpCliSock.recv(BUFSIZ) #从客户端接收1024大小的数据
   os.write(w,data) #将数据写入到道道中
if not data: #如果客户端没有任何输入,即直接回车或Ctrl+D
tcpSerSock.close() #关闭客户端链接
break #跳出无限循环
tcpCliSock.send('[%s] %s' %(ctime(),os.read(r,1024)))#否则回显用户信息并附加当前时间!

tcpSerSock.close() #这句话依然不会被执行。

通过这两个脚本大家能否对Apache的profork模式有一个更清晰的认识?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EnterpriseDB Replication,复制Oracle数据测试(1)

EntepriseDB 复制软件目前支持多种数据库到postgre的复制,其基本结构由发布者(Publication)与订阅者(Subscriptions)组成,Replication软件可针对来自不同类型数据库的多个发布者,将其数据复制到多个订阅者(Subscriptions)数据库中。 其可能的几种拓扑结构…

远程桌面登录 Windows Server 2003时提示无权限

2019独角兽企业重金招聘Python工程师标准>>> 登录时弹出提示:要登录到这台远程计算机,您必须被授予允许通过终端服务登录的权限。默认地,"远程桌面用户"组的成员拥有该权限。如果您不是"远程桌面用户"组或其它…

BZOJ 1845三角形面积并

题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id1845 给定100个三角形,求三角形面积并。 戴神模板太可怕。直接调用函数秒掉。思路有点繁琐,不大清楚。贴一个代码。 代码: /* **********************************…

每个大数据工程师都应该知道的OLAP 核心知识点

转载:https://mp.weixin.qq.com/s/I2WqQoGwK7LRrpB4R2pobw 很值得学习的一篇文章,不适用于初学者,适用于中级或者进阶高级的大数据工程师 OLAP 系统广泛应用于 BI, Reporting, Ad-hoc, ETL 数仓分析等场景,本文主要从体系化的角度…

高效便捷地创建单元格数据图表

您能想象折线图、柱状图这些图表被放在一个小小的单元格中的样子吗?Excel 2010的迷你图功能为您提供了这样的便捷体验,让您高效便捷地创建单元格数据图表! 1.打开您想要创建迷你图的Excel工作簿(如果它是Excel 97-200…

CLR Via CSharp读书笔记(7):常量和字段

{TODO:}转载于:https://www.cnblogs.com/thlzhf/archive/2012/12/06/2805424.html

高并发 高负载 网站系统架构 !深入讨论!【转载】

转载于:https://www.cnblogs.com/ifishing/archive/2010/05/26/1744339.html

聊透分布式系统一致性

一、强一致性 一致性大家庭中,虽然细分种类很多,但是实际上只有两大类,其中之一就是强一致性,其具体包含了严格一致性(也叫原子一致性或者线性一致性)和顺序一致性。 严格(原子/线性)一致性 严格一致性代表着,当数据更…

使用jquery打造一个动态的预览产品颜色效果

在浏览一些电子商务网站的时候,选择一件产品的时候,我们经常会看到点击衣服的颜色,同一件衣服的颜色就会切换,让我们觉得真是比较有意思,这样做的效果给用户的体验比较好,今天就给大家分享一下这种效果的实…

@RequestMapping 和 @GetMapping @PostMapping 区别

RequestMapping 和 GetMapping PostMapping 区别 GetMapping是一个组合注解,是RequestMapping(method RequestMethod.GET)的缩写。 PostMapping是一个组合注解,是RequestMapping(method RequestMethod.POST)的缩写。 转自:https://www.c…

C++ 中的 #pragma warning(push) 和 #pragma warning(pop)有什么用

#pragma warning(push)是保存当前的编译器警告状态; #pragma warning(pop)是恢复原先的警告状态。 例如:rocksdb中的一段代码 #if defined(_MSC_VER) #pragma warning(push) #pragma warning(disable : 4244) # 禁止compiler警告 // varint32编…

关于软件版本命名的方法

当然,这个在这里谈的很多了, 但这里只是说说我们这边用的几种模式, 主要针对发布比较频繁发布的情况,比如两周一次,一个月一次之类的。【一、major.minor】比如1.0, 1.2, 2.5, 3.0等等。 major是主要版本号&#xff0c…

Java Word转Html

最近转换的需求比较多,最近做了一个Word转Html的 这个要导一个包和配置一个文件 1.jacob.jar 2.与jacob.jar相对应的jacob.dll(放在windows/sys32下或者放在jre下面) 代码 1 packagetest;2 3 importjava.io.File;4 5 importcom.jacob.activeX…

在vue.js引用图片的问题

<div id"img"> <img src"img.png" class"img"> </div> $(".img").attr("src",require("/img.png")); 在vue里在js中引用图片必须加一个require关键字和在图片地址前面加符号 转载于:https://ww…

CreateCompatibleDC

CreatCompatibleDC()创建了一个和当前屏幕的DC兼容的内存DC&#xff08;DC就是设备上下文的意思&#xff0c;设备上下文就是当前的这个窗体的一些属性&#xff0c;譬如说他使用的画刷&#xff0c;画笔等等&#xff09;&#xff0c;在绘制位图的时候&#xff0c;你必须要在内存中…

leveldb中为什么L 0层中每个sst文件中key的范围都是有重叠的?

在leveldb中&#xff0c;level 0层中的sst文件是由immutable memtable通过后台线程flush得到的&#xff0c;但是由于immutable memtable中的key可能是由重复的&#xff0c;因此在leveldb中将sst文件中key的范围有重叠的所有sst文件都放在了level 0层中&#xff0c;而其他level层…

一些令人震惊的话

1.现在女人真伟大。不知不觉肚子大、有了孩子没有爸&#xff01;2.小时候我们把玩具当朋友、长大了朋友拿我们当玩具。3.你不能让所有的人满意&#xff0c;因为不一定所有的都是人。4.人生就象卫生纸、没事尽量少扯、&#xff01; 5.有老公怎么的&#xff1f; 有守门员球还进呢…

文本分类的一种对抗训练方法

最近阅读了有关文本分类的文章&#xff0c;其中有一篇名为《Adversarail Training for Semi-supervised Text Classification》, 其主要思路实在文本训练时增加了一个扰动因子&#xff0c;即在embedding层加入一个小的扰动&#xff0c;发现训练的结果比不加要好很多。 模型的网…

在leveldb中,为什么要有immutable memtable?

目的是&#xff1a;为了防止写入kv时被阻塞。 设想&#xff0c;如果没有immutable memtable&#xff0c;当memtable满了之后后台线程需要将memtable 立即flush到新建的sst中&#xff0c;在flush的过程中&#xff0c;新的KV记录是无法写入的&#xff0c;只能等待&#xff0c;就…

密码强弱提示(27)

密码的强弱提示是对用户填写登陆密码的复杂程度来给出提示&#xff0c;使用密码的强弱提示可以增强用户对密码的保护意识&#xff0c;对如今的网络是非常有必要的&#xff0c;本程序中当用户输入完密码后&#xff0c;网页会自动的对用户输入的密码给出强弱判断。 使用JavaScrip…