我正在使用 python 套接字发送字符并从 py LAN 上的 Raspberry PI 接收视频流。到目前为止,一切都按预期工作。视频流正在从 pi 接收并显示在 PC 上。但是每当 PI 连接到我的 PC(PC 是服务器,PI 是客户端)时,我都会收到错误消息。错误是:
Qt: Session management error: None of the authentication protocols specified are supported
Run Code Online (Sandbox Code Playgroud)
附加信息:我正在运行 Ubuntu 19.10。我的python版本是3.7。下面附上服务器文件和客户端文件。
import io
import socket
import struct
import cv2
import numpy as np
class Server:
opened = False
address = ''
port = 0
clientSocket = None
connection = None
socketServer = socket.socket()
def __init__(self, address, port):
self.address = address
self.port = port
def connect(self):
try:
self.socketServer = …Run Code Online (Sandbox Code Playgroud) 我正在建造一辆自动驾驶遥控车。汽车由树莓派(客户端)控制,它将图像数据发送到我的计算机(服务器),计算机处理图像帧并响应汽车要做什么(全部使用 python 套接字)。这非常有效。我现在正在尝试向 python 添加一个关键侦听器,这样我就可以在所有套接字交互发生的同时手动控制汽车。我想使用多线程来做到这一点。这是我认为它应该如何工作的方式:
import cv2
from pynput import keyboard
from Server import Server
###Keyboard Listener###
def keyPress(key): #send keypress to client
server.sendCommand((str(key)))
with keyboard.Listener(on_press=keyPress) as listener: #new listener thread
listener.join() #activate thread
###Server/ client interaction###
host, port = '10.78.1.195', 8000 # home
server = Server(host, port) #server object
server.connect() #connect
while server.isOpened(): #do while the server is open
frame = server.getStreamImage() #get an image from the client each frame
server.sendCommand("0") #send a command to the server (arbituary for …Run Code Online (Sandbox Code Playgroud)