如何打开和关闭python套接字

时间:2017-08-15 05:44:36

标签: python sockets

我有一个c ++程序,它从rpi读取GPIO的传感器数据。 我想通过以太网将这些数据传递给我的计算机(不能做Wi-Fi)。

我从cpp调用python脚本将1个数据字节发送到套接字。

我想关闭套接字并结束py脚本,然后在cpp中执行下一次读取,然后再次调用相同的python脚本重新打开相同的套接字并发布下一个数据。如何使此脚本模块化?

另外(可选)

  • (1)如何在cpp中使用ubuntu套接字?
  • (2)如何将cpp变量作为cpp程序中的数据传递给传输python脚本?

下面的发送和接收脚本在连续模式下工作得很好,但是我想要一个更加异步的方法来完成这项工作。如果我试图关闭套接字然后重新打开它,我会收到错误,说明它已经打开等等。

我可以使用

通过以太网发送数据
#!/usr/bin/python
import socket
HOST='169.254.72.2'
PORT=2225
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr=s.accept()
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
print 'Connected by', addr
while True:
        conn.send('5')
s.close()

我在PC上接收python脚本(客户端)是这样的:

import socket
HOST='169.254.72.2'
PORT=2225
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while 1:
    a=time.clock()
    data=s.recv(1)
    print data
s.close()

0 个答案:

没有答案