![](/img/trans.png)
[英]sending video stream from server to client using socket programming in python
[英]sending images from client to server using socket python
我正在尝试从客户端向服务器发送多个图像。 从我的客户端一次发送一个图像,然后为每个图像获取服务器中的大小,然后将大小发送回客户端,然后尝试将所有图像的所有大小存储在一个表中。 我写了这段代码,它似乎不起作用:
client.py:
from PIL import Image
import glob
import sys
import pickle
import socket
import os
import numpy
reload(sys)
def readFileImages(strFolderName):
st = os.path.join(strFolderName, "*.png")
print st
return glob.glob(st)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
client_socket.bind(("127.0.0.1", 4000))
list1=readFileImages("test")
myoutput =[]
while (list1):
for im in list1:
f=open(im,"rb")
while True:
veri = f.read()
if not veri:
break
client_socket.send(veri)
f.close()
data = client_socket.recv(4096)
data_arr=pickle.loads(data)
newrow=numpy.asarray(data_arr)
myoutput=numpy.vstack([myoutput,newrow])
client_socket.close()
numpy.savetxt("testTable.csv",myoutput,delimiter=",")
server.py:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1);
s.bind(("127.0.0.1",4000))
s.listen(5)
client_socket, address = s.accept()
print "Connected to - ",address,"\n"
fname="test.png"
fp = open(fname,'wb')
# image
while True:
strng = client_socket.recv(1024)
if not strng:
break
fp.write(strng)
fp.close()
#T[0]=detect_carte_grise(fp)
im = Image.open(fp)
T= im.size #width,height
data=pickle.dumps(T)
client_socket.send(data)
为何出现此错误?:[errno98]地址已在使用中,我什至无法连接到服务器
首先,在服务器代码中绑定到端口,但是在客户端代码中,需要连接到该服务器。 您正在绑定两个脚本,并且第一个正在运行的脚本已使用该地址。 因此在客户端拖放绑定并更改为client_socket.connect(("127.0.0.1", 4000))
。 这样可以解决当前的问题,如果还有其他问题,请提出另一个问题。
我遇到了同样的错误,我更改了“端口号”。 很好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.