python实现进程间通信简单实例
本文实例讲解了python实现两个程序之间通信的方法,具体方法如下:
该实例采用socket实现,与socket网络编程不一样的是socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)的第一个参数是socket.AF_UNIX
而不是 socket.AF_INET
例中两个python程序 s.py/c.py 要先运行s.py
基于fedora13/python2.6测试,成功实现!
s.py代码如下:
#!/usr/bin/env python import socket import os if __name__ == '__main__': sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) conn = '/tmp/conn' if not os.path.exists(conn): os.mknod(conn) if os.path.exists(conn): os.unlink(conn) sock.bind(conn) sock.listen(5) while True: connection,address = sock.accept() data = connection.recv(1024) if data == "hello,server": print "the client said:%s!\n" % data connection.send("hello,client") connection.close()
c.py代码如下:
#!/usr/bin/env python import socket import time if __name__ == '__main__': sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) conn = '/tmp/conn' sock.connect(conn) time.sleep(1) sock.send('hello,server') print sock.recv(1024) sock.close()
相关推荐
-
Python多进程通信Queue、Pipe、Value、Array实例
queue和pipe的区别: pipe用来在两个进程间通信.queue用来在多个进程间实现通信. 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法. 1)Queue & JoinableQueue queue用来在进程间传递消息,任何可以pickle-able的对象都可以在加入到queue. multiprocessing.JoinableQueue 是 Queue的子类,增加了task_done()和join()方法. task_done()用来告诉queue一个tas
-
Python进程间通信用法实例
本文实例讲述了Python进程间通信用法.分享给大家供大家参考.具体如下: #!/usr/bin/env python # -*- coding=utf-8 -*- import multiprocessing def counsumer(input_q): while True: item = input_q.get() #处理项目 print item #此处替换为有用的工作 #发出信号通知任务完成 input_q.task_done() def producer(sequence,outp
-
Python进程间通信之共享内存详解
前一篇博客说了怎样通过命名管道实现进程间通信,但是要在windows是使用命名管道,需要使用python调研windows api,太麻烦,于是想到是不是可以通过共享内存的方式来实现.查了一下,Python中可以使用mmap模块来实现这一功能. Python中的mmap模块是通过映射同一个普通文件实现共享内存的.文件被映射到进程地址空间后,进程可以像访问内存一样对文件进行访问. 不过,mmap在linux和windows上的API有些许的不一样,具体细节可以查看mmap的文档. 下面看一个例子:
-
Python进程通信之匿名管道实例讲解
匿名管道 管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端. os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下: 复制代码 代码如下: #!/usr/bin/python import time import os def child(wpipe): print('hello from child', os.getpid()) while True:
-
python 多进程通信模块的简单实现
多进程通信方法好多,不一而数.刚才试python封装好嘅多进程通信模块 multiprocessing.connection. 简单测试咗一下,效率还可以,应该系对socket封装,效率可以达到4krps,可以满足好多方面嘅需求啦. 附代码如下: client 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*-""" download - slave"""__author__ = 'Zagfai
-
详解Python进程间通信之命名管道
管道是一种简单的FIFO通信信道,它是单向通信的. 通常启动进程创建一个管道,然后这个进程创建一个或者多个进程子进程接受管道信息,由于管道是单向通信,所以经常需要创建两个管道来实现双向通信. 命名管道是对传统管道的扩展,默认的管道是匿名管道,只在程序运行时存在:而命名管道是持久化的,当不需要时需要删除它. 命名管道使用文件系统,由mkfifo()方法创建.一旦创建了,两个独立的进程都可以访问它,一个读,另外一个写. 命名管道支持阻塞读和阻塞写操作: 如果一个进程打开文件读,它会阻塞直到另外一个进
-
python执行子进程实现进程间通信的方法
本文实例讲述了python执行子进程实现进程间通信的方法.分享给大家供大家参考.具体实现方法如下: a.py: import subprocess, time subproc = subprocess.Popen(['c:\python31\python.exe', 'c:/b.py'], stdin=subprocess.PIPE, shell=True) time.sleep(0.5) print('start') subproc.stdin.write('data\n') subproc.
-
python实现进程间通信简单实例
本文实例讲解了python实现两个程序之间通信的方法,具体方法如下: 该实例采用socket实现,与socket网络编程不一样的是socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)的第一个参数是socket.AF_UNIX 而不是 socket.AF_INET 例中两个python程序 s.py/c.py 要先运行s.py 基于fedora13/python2.6测试,成功实现! s.py代码如下: #!/usr/bin/env python im
-
python多进程间通信代码实例
这篇文章主要介绍了python多进程间通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 这里使用pipe代码如下: import time from multiprocessing import Process import multiprocessing class D: @staticmethod def test(pipe): while True: for i in range(10): pipe.send(i) time.s
-
Python进程间通信Queue实例解析
本文研究的主要是Python进程间通信Queue的相关实例,具体如下. 1.Queue使用方法: Queue.qsize():返回当前队列包含的消息数量: Queue.empty():如果队列为空,返回True,反之False : Queue.full():如果队列满了,返回True,反之False: Queue.get():获取队列中的一条消息,然后将其从列队中移除,可传参超时时长. Queue.get_nowait():相当Queue.get(False),取不到值时触发异常:Empty:
-
python 循环while和for in简单实例
python 循环while和for in简单实例 #!/uer/bin/env python # _*_ coding: utf-8 _*_ lucknumber = 5 b = 0 while b <3: print('guss count:',b) a = int(input('you guse number')) if a > lucknumber: print ('youaerbiger') elif a == lucknumber: print ('youare righet')
-
Python中DJANGO简单测试实例
本文实例讲述了Python中DJANGO简单测试的用法.分享给大家供大家参考.具体如下: 这里以facebook台湾的测试版为例. 仅仅测试用户登录,主要说明测试的使用和django环境的设置. 代码如下: import os import sys import unittest import hashlib TEST_MEMBER_ID = 11 SNS_ID = 100002309745702 TEST_SESSION_KEY = '125737724171219|2.AQCp7ctCYXJ
-
常见python正则用法的简单实例
下面列出Python正则表达式的几种匹配用法: 1.测试正则表达式是否匹配字符串的全部或部分 regex=ur"" #正则表达式 if re.search(regex, subject): do_something() else: do_anotherthing() 2.测试正则表达式是否匹配整个字符串 regex=ur"\Z" #正则表达式末尾以\Z结束 if re.match(regex, subject): do_something() else:
-
python实现的简单RPG游戏流程实例
本文实例讲述了python实现的简单RPG游戏流程.分享给大家供大家参考.具体如下: #RPG rpg = True whp = 100 mahp = 100 hhp = 100 MHP = 10 def dgrnd () : wa = raw_input ("What does Warrior do?") ma = raw_input ("What does Mage do?") ha = raw_input ("What does Healer do?
-
Python while 循环使用的简单实例
while循环是在Python中的循环结构之一. while循环继续,直到表达式变为假.表达的是一个逻辑表达式,必须返回一个true或false值,本文章向码农介绍Python while 循环使用方法,需要的朋友可以看一下本文章. 一个循环是一个结构,导致第一个程序要重复一定次数.重复不断循环的条件仍是如此.当条件变为假,循环结束和程序的控制传递给后面的语句循环. while循环: while循环是在Python中的循环结构之一. while循环继续,直到表达式变为假.表达的是一个逻辑表达式,
-
Golang与python线程详解及简单实例
Golang与python线程详解及简单实例 在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000. var sum int var cccc int var m *sync.Mutex func Count1(i int, ch chan int) { for j := 0; j < 100000; j++ { cccc = cccc + 1 } ch <- cccc } func main() { m = new(sync.
-
python 调用HBase的简单实例
新来的一个工程师不懂HBase,java不熟,python还行,我建议他那可以考虑用HBase的thrift调用,完成目前的工作. 首先,安装thrift 下载thrift,这里,我用的是thrift-0.7.0-dev.tar.gz 这个版本 tar xzf thrift-0.7.0-dev.tar.gz cd thrift-0.7.0-dev sudo ./configure --with-cpp=no --with-ruby=no sudo make sudo make install 然
随机推荐
- PHP中多线程的两个实现方法
- AngularJs定时器$interval 和 $timeout详解
- extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
- js中apply方法的使用详细解析
- SVN服务器搭建图文教程
- 再谈javascript注入 黑客必备!
- ES6中Math对象新增的方法实例详解
- 捕获浏览器关闭、刷新事件不同情况下的处理方法
- JQuery中Ajax的Post提交在IE下中文乱码的解决方法
- Android实现滑动选择控件实例代码
- php array_reverse 以相反的顺序返回数组实例代码
- nginx url自动加斜杠及301重定向的问题
- android 如何设置开机后屏幕亮度默认值为自动调节
- 将字符串中由空格隔开的每个单词首字母大写
- 漂亮但不安全的CTB
- Android新布局方式ConstraintLayout快速入门教程
- javascript回调函数详解
- Python中join函数简单代码示例
- JDK动态代理之ProxyGenerator生成代理类的字节码文件解析
- 使用element-ui table expand展开行实现手风琴效果