如何使用python套接字在客户端和服务器之间进行双向通信?

时间:2019-01-15 05:05:29

标签: python sockets raspberry-pi3

该项目涉及一个客户端,该客户端通过套接字将相机供稿流式传输到服务器。服务器一直在等待用户输入,每当按下一个键时,客户端相机在特定时刻捕获的帧将被添加到一个numpy对象中。相同的流式代码如下:

流服务器-

import newObj from "./test.json"

流客户端-

import io
import os
import socket
import struct
import cv2
import numpy as np
from PIL import Image

server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 6677))
server_socket.listen(0)

connection = server_socket.accept()[0].makefile('rb')
print('connection accepted')

try:
  while True:
    image_len = struct.unpack('<L', connection.read(struct.calcsize('<L')))[0]
    if not image_len:
        break

    image_stream = io.BytesIO()
    image_stream.write(connection.read(image_len))

    image_stream.seek(0)
    image = Image.open(image_stream)

    print('Image is %dx%d' % image.size)
    cv2.imshow('Pi', cv2.cvtColor(np.array(image), cv2.COLOR_BGR2RGB))
    cv2.waitKey(1)

finally:
  connection.close()
  server_socket.close()

我无法为用户输入编写代码并保存部分项目。谷歌搜索使我转向异步I / O套接字,但尚不清楚它如何适合我的用例。

0 个答案:

没有答案