У меня проблемы с работой моего сервера. Я пытаюсь отправить текстовый файл на локальный клиент. Я получаю сообщение об ошибке с сбросом соединения по пиру Как это исправить? Вот мой код, который у меня есть.
import socket
from socket import *
from datetime import datetime
import sys
s = socket(AF_INET, SOCK_STREAM)
HOST = "127.0.0.2" # Local client is going to be 127.0.0.1
PORT = 4300 # Open http://127.0.0.2:4300 in a browser
LOGFILE = "webserver.log"
def main():
"""Main loop"""
with socket(AF_INET, SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen(1)
print('Listening on port {}'.format(PORT))
conn, addr = s.accept()
print("Waiting for client response")
with conn:
while True:
data = conn.recv(1024)
dt = data.decode()
print(dt)
if not data:
print('Connection closed')
break
if data:
filename = 'alice30.txt'
f = open(filename,'rb')
l = f.read(1024)
while (l):
conn.sendall(l)
print('Sent ',repr(l))
l = f.read(1024)
f.close()
else:
print("Invalid")
conn.sendall("Invalid Request".encode())
print("Waiting for client response")
if __name__ == "__main__":
main()
Трассировка, которую я получаю:
Traceback (most recent call last):
File "webserver.py", line 53, in <module>
main()
File "webserver.py", line 24, in main
data = conn.recv(1024)
socket.error: [Errno 104] Connection reset by peer
Я считаю, что это не та проблема, которая связана с дубликатом. В ответах они сказали, что это проблема сервера. Мой код является сервером ... Я думаю, что он имеет дело с байтами, отправляемыми туда и обратно.