试图发送一个大文件,python套接字

时间:2014-01-09 09:49:39

标签: python sockets opencv

我尝试创建从网络摄像头到其他服务器的实时流。我的问题是 我正在设计的框架是大的,以便插座处理
我正在考虑这个错误:

error: [Errno 10040] A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself

这是我的代码:

 import numpy as np
import cv2
import socket
import sys
import select
cap = cv2.VideoCapture(0)
address = ('localhost', 6005)
client_socket=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
    print (frame)
    client_socket.connect(('120.0.0.1', 6005))
    client_socket.sendto(frame, address)

我知道c和我认为可能是我可以创建一个指向框架的指针并逐个发送它 所以我的问题是如何将此方法转换为python以及是否可能

1 个答案:

答案 0 :(得分:1)

来自Ans :

  

您的图片太大,无法在一个UDP数据包中发送。你需要拆分   将图像数据分成几个单独发送的数据包。

     

如果您没有特殊原因使用UDP,您也可以使用TCP   通过指定socket.SOCK_STREAM而不是socket.SOCK_DGRAM。那里   您不必担心数据包大小和订购。

您还可以查看Ans