Muhammad Afaq Riaz Ответов: 1

Как получить текст, а также изображения с помощью сокетов?


Я работаю с розетками. Я написал код для сервера python, который будет получать данные от клиента c# и отображать их в консоли. Данные могут представлять собой изображение или текст. Теперь проблема заключается в том, как отличить Изображение от текста, потому что текст должен отображаться в консоли, а изображение должно сохраняться на диске.

Что я уже пробовал:

Ниже приведен код сервера python:

import socket
import os
import io
import os.path

class MyTCPHandler(socketserver.BaseRequestHandler):
    def handle(self):
        self.data=self.request.recv(1024).strip()
        print ("{} wrote:".format(self.client_address[0]))
        if os.path.isfile("image.png"):
            os.remove("image.png")

        file = open("image.png", "wb")
        while True:
            data = self.request.recv(1024)
            if not data:
                break
            file.write(data)
            print(str(list(data)))

        print("Done.")
        print (self.data)
        self.request.sendall(self.data.upper())

if __name__ == "__main__":
    HOST, PORT = socket.gethostname(), 11000
    print ("IP: "+socket.gethostbyname('BlackZero-PC'))
    print ("Host: "+socket.gethostname())

    server=socketserver.TCPServer((HOST, PORT), MyTCPHandler)
    server.serve_forever()

1 Ответов

Рейтинг:
8

Richard MacCutchan

Вам нужно добавить некоторые дополнительные данные к каждому сообщению, которые идентифицируют то, что отправляется - текст или изображение.


Muhammad Afaq Riaz

Спасибо, я решил ее так же, как и ваш ответ.