Я пытаюсь собрать программу для передачи файлов через сокеты Python3.
Вот мой код сервера:
# server.py
import socket # Import socket module
port = 60000 # Reserve a port for your service.
s = socket.socket() # Create a socket object
host = "127.0.0.1" # Get local machine name
s.bind((host, port)) # Bind to the port
s.listen(4) # Now wait for client connection.
print ('Server listening....')
while True:
conn, addr = s.accept() # Establish connection with client.
print ('Got connection from', addr)
filename='send.rtf'
print ('File Assigned')
f = open(filename,'rb')
print ('File Oppened')
l = f.read(1024)
print ('Reading')
while (l):
conn.send(l)
print('Sent ',repr(l))
l = f.read(1024)
print ('Reading')
f.close()
print('Done sending')
conn.close()
А вот мой код клиента:
# client.py
import socket # Import socket module
s = socket.socket() # Create a socket object
host = "127.0.0.1" # Get local machine name
port = 60000 # Reserve a port for your service.
s.connect((host, port))
with open('recieved', 'wb') as f:
print ('file opened')
while True:
print('receiving data...')
data = s.recv(1024)
print('data=%s', (data))
if not data:
break
# write data to a file
f.write(data)
f.close()
print('Successfully got the file')
s.close()
print('Connection closed')
У меня есть сервер на моем Mac и клиент на моем ПК. Программа работает нормально, если я запускаю их оба на своем Mac, но не на отдельных машинах. Это ошибка, которую я получаю, когда запускаю программу на своем ПК:
Traceback (most recent call last):
File "C:\Users\gshin\Desktop\P2PFile\P2PFileClient2.py", line 9, in <module>
s.connect((host, port))
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
Любая помощь будет принята с благодарностью!