(Python) Когда я пытаюсь запустить мою программу, я получаю сообщение об ошибке, показанное ниже.
Traceback (most recent call last):
File "/Volumes/USER/server.py", line 15, in <module>
filename = message.split()[1]
AttributeError: 'tuple' object has no attribute 'split'
Я попытался изменить значение имени файла = message.split () [0], но оно не сработало.
#import socket module
import socket
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Prepare a sever socket
serverName = socket.gethostname()
serverPort = 1234
serverSocket.bind(('', serverPort))
serverSocket.listen(1)
while True:
#Establish the connection
print('Ready to serve...')
connectionSocket, addr = serverSocket.accept()
try:
message = connectionSocket.recvfrom(1024)
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
#Send one HTTP header line into socket
header = 'HTTP/1.1 200 OK\r\n' +\
'Connection: close\r\n' + \
'Content-Type: text/html\r\n' + \
'Content-Length: %d\r\n\r\n' % (len(outputdata))
connectionSocket.send(header.encode())
#Send the content of the requested file to the client
for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i].encode())
connectionSocket.close()
except IOError:
#Send response message for file not found
header = 'HTTP/1.1 404 Not Found\r\n\r\n'
connectionSocket.send(header.encode())
#Close client socket
connectionSocket.close()
serverSocket.close()
В том же каталоге, что и программа, сервер.py, у меня есть файл helloworld.html, который должен загружаться при переходе на IP-адрес сервера с жестко заданным портом, а также отображать 404 при переходе к файлу, который не существует.ex (192.168.1.2:1234/helloworld.html)