python实现进程间通信简单实例

886次阅读  |  发布于5年以前

本文实例讲解了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() 

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8