Это мой код. В настоящее время он передает около 75% файла изображения (обрезается внизу). Я хочу, чтобы это перенесли в целом. Вот как я работал над этим:
Создать папку на сервере p c под названием "сервер"
Создать папка в клиенте p c называется "клиент"
Также включите файл изображения, который вы хотите перенести в ту же папку "клиент"
Клиентская сторона спрашивает "имя файла, который вы хотите отправить", я набираю имя файла изображения в папке
Aerver сторона спрашивает меня "имя файла, который вы хотите чтобы получить ", я набираю произвольное имя.
Файл передается и сохраняется в папке" server "на сервере P C.
client.py
from socket import *
def establish_connection(server_IP, server_port):
client_socket = socket(AF_INET, SOCK_STREAM)
client_socket.connect((server_IP, server_port))
return client_socket
def send_recv_message(client_socket, message, buffer_size):
file = open(filename,'rb')
file_data = file.read(buffer_size)
client_socket.send(file_data)
text=print("File transfered")
return text
server_IP = input("Please, enter server IP address: ")
server_port = input("Please, enter server TCP connection port number: ")
client_socket = establish_connection(server_IP, int(server_port))
print("Connection established\n")
filename= input(str("enter filename"))
received_message = send_recv_message(client_socket,filename,1048576)
server.py
from socket import *
def create_socket(server_port):
server_socket = socket(AF_INET, SOCK_STREAM)
server_socket.bind(('', server_port))
server_socket.listen(1)
return server_socket
def recv_message(server_socket, buffer_size):
file = open(filename, 'wb')
connection_socket, address = server_socket.accept()
file_data= connection_socket.recv(buffer_size)
file.write(file_data)
file.close()
text=("file recieved")
return text
server_port = input("Please, enter TCP connection port number: ")
server_socket = create_socket(int(server_port))
while (True):
filename=input(str("enter filename for the incoming file:"))
incoming_message = recv_message(server_socket, 1048576)
print ("{}" .format(incoming_message))