繁体   English   中英

使用Python中的套接字编程接收图像

[英]Receive Image using socket programming in Python

我正在尝试接收python中的图像以在程序中使用它。

这是服务器代码:

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("127.0.0.1", 5005))
server_socket.listen(5)

data = ' ' 
client_socket, address = server_socket.accept()
print "Conencted to - ",address,"\n"
while (1):
    data = client_socket.recv(1024)
    print "The following data was received - ",data
    print "Opening file - ",data
    img = open(data,'r')
    while True:
      strng = img.readline(512)
      if not strng:
        break
      client_socket.send(strng)
      img.close()
      print "Data sent successfully"
      exit()
      #data = 'viewnior '+data
      #os.system(data)

这是客户端代码:

import socket,os
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("127.0.0.1", 5005))
size = 1024

while(1):
    print "Enter file name of the image with extentsion (example: filename.jpg,filename.png or if a video file then filename.mpg etc) - "
    fname = raw_input()
    client_socket.send(fname)
    #fname = 'documents/'+fname
    fp = open(fname,'w')
    while True:
        strng = client_socket.recv(512)
        if not strng:
            break
        fp.write(strng)
    fp.close()
    print "Data Received successfully"
    exit()
    #data = 'viewnior '+fname
    #os.system(data)

现在应该阅读收到的内容,以便能够使用它。 我正在这样打开它:

input_image = Image.open('data').convert('L').resize((100, 100))

但是当我在cmd中运行两个代码时,输​​出为: The following data was received - + path Opening file - + path虽然应该使用图像并显示最终输出,但是什么也没有发生。

有人可以帮忙吗?

我不知道这是否是您的(唯一的)问题,但是在处理二进制文件时,应将b标志传递给内置函数open

img = open(data, 'rb')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM