新人小白勿怪。
python實作服務器錄制視頻,UDP實時傳輸到客戶端,實時顯示。
報錯
data, addr = s.recvfrom(4096),socket.error: [Errno 10040]
Buffer已經設定為65536,按說不應該會有buffer不足的情況。
感謝大佬們指點。
代碼如下:
host.py
import cv2
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('127.0.0.1', 9999))
cap = cv2.VideoCapture(1)
cap.set(3, 320)
cap.set(4, 240)
while True:
data, addr = s.recvfrom(4096)
if data != '0':
_, fra = cap.read()
_, enfra = cv2.imencode('.jpg', fra)
s.sendto(enfra, ('127.0.0.1', 9999))
s.close()
client.py
import cv2
import socket
port = 9999
host = '127.0.0.1'
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(b'1', (host, port))
cv2.namedWindow('img')
while True:
data, addr = s.recvfrom(400000)
if data:
imde = cv2.imdecode(data, 1)
cv2.imshow('img', imde)
k = cv2.waitKey(1)
if k == ord('q'):
s.sendto(b'0', (host, port))
break
s.close()
cap.release()
cv2.destroyAllWindows()
uj5u.com熱心網友回復:
大佬還在嗎。我總是出現這種錯誤:data, addr = s.recvfrom(400000)
ConnectionResetError: [WinError 10054] 遠程主機強迫關閉了一個現有的連接。
>>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/96856.html
標籤:網絡通信
下一篇:CentOS7-8、CentOS8.2、阿里云服務器,無GUI圖形化界面,CentOS使用RPM方式安裝Oracle 19c
