概述
Socket树莓派实时传输到PC上
我们把PC端作为我们的服务端,树莓派作为我们的客户端。
PC端
#!/usr/bin/python
#-*-coding:utf-8 -*-
import socket
import cv2
import numpy
address = ('',8080) # 设置地址与端口,如果是接收任意ip对本服务器的连接,地址栏可空,但端口必须设置
class ServerSocket(object):
def __init__(self):
# socket.AF_INET用于服务器与服务器之间的网络通信
# socket.SOCK_STREAM代表基于TCP的流式socket通信
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.bind(address) # 将Socket(套接字)绑定到地址
self.server_socket.listen(True) # 开始监听TCP传入连接
print('Waiting for images...')
# 接受图片大小的信息
def recv_size(self,sock, count):
buf = b''
while count:
newbuf = sock.recv(count)
if not newbuf: return None
buf += newbuf
count -= len(newbuf)
return buf
# 接收图片
def recv_all(self,sock, count):
buf = ''
while count:
# 这里每次只接收一个字节的原因是增强python与C++的兼容性
# python可以发送任意的字符串,包括乱码,但C++发送的字符中不能包含'