

こんばんは、閲覧していただきありがとうございます。  
現在、Python3とソケット通信を用いて、Webカメラの画像を送ろうとしています。  
ちなみに、使用するパソコンは1台のみです。

ですが、実行途中でエラーが起きてしまい、その原因が分からず、困っています。  
ですので、ご指摘いただけないでしょうか?  
よろしくお願いいたします。

【サーバー側】

[code]

    import socket
    import numpy as np
    import cv2
    
    soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    soc.connect(("192.168.0.2", 11000))
    
    print("Finish conecct!")
    
    while(1):
        data = soc.recv(921600)
    
        data = np.fromstring(data,dtype=np.uint8)
    
        data = np.reshape(data,(160,120,3))
    
        cv2.imshow("",data);
    
        k = cv2.waitKey(1)
        if k== 13 :
            break
    
    cv2.destroyAllWindows()
    
[/code]

【エラー内容】

[code]

    Finish conecct!
    server2.py:14: DeprecationWarning: The binary mode of fromstring is deprecated, as it behaves surprisingly on unicode inputs. Use frombuffer instead
      data = np.fromstring(data,dtype=np.uint8)
    Traceback (most recent call last):
      File "server2.py", line 16, in <module>
        data = np.reshape(data,(160,120,3))
      File "<__array_function__ internals>", line 6, in reshape
      File "C:\Users\S.Tayama\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\numpy\core\fromnumeric.py", line 301, in reshape
        return _wrapfunc(a, 'reshape', newshape, order=order)
      File "C:\Users\S.Tayama\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\numpy\core\fromnumeric.py", line 61, in _wrapfunc
        return bound(*args, **kwds)
    ValueError: cannot reshape array of size 921600 into shape (160,120,3)
    
[/code]

【クライアント側】

[code]

    import socket
    import numpy as np
    import cv2
    import time
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    s.bind(("192.168.0.2", 11000))
    
    print("Waiting for connection")  
    
    s.listen(1)
    
    soc, addr = s.accept()
    
    print(str(addr)+"Finish conecct")  
    
    cam = cv2.VideoCapture(0)
    
    while (True):
    
        flag,img = cam.read()
    
        img = img.tostring()
    
        soc.send(img)
    
        time.sleep(0.5)
    
        k = cv2.waitKey(1)
        if k== 13 :
            break
    
    cam.releace()
    
[/code]

【エラー内容】

[code]

    Waiting for connection
    ('192.168.0.2', 56568)Finish conecct
    Traceback (most recent call last):
      File "client4.py", line 26, in <module>
        soc.send(img)
    ConnectionAbortedError: [WinError 10053] 確立された接続がホスト コンピューターのソウトウェアによって中止されました。
    
[/code]


CC BY-SA 4.0
2020-02-17T13:22:32.490
63121
2020-02-17T16:30:18.990
2020-02-17T16:30:18.990
3060
37869
question
python python3 socket
Python3とソケット通信を用いたカメラ画像の転送について