Я только начинаю изучать протокол HTTP и пытаюсь реализовать простой веб-сервер на Python.Приведенный ниже код не является оптимальным и не обрабатывает ошибку, когда запрошенный файл не существует, но давайте предположим, что на сервере есть файл, который запрашивает клиент.
# import socket module
from socket import *
serverSocket = socket(AF_INET, SOCK_STREAM)
# Prepare a sever socket
serverPort = 9998 # Arbitrary port number
serverSocket.bind(('', serverPort))
serverSocket.listen(1)
print("The server is ready to receive")
while True:
# Establish the connection
print('Ready to serve...')
connectionSocket, addr = serverSocket.accept()
print("Request accepted from (address, port) tuple: %s" % (addr,))
message = connectionSocket.recv(1024).decode()
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
print("File found!")
# Send one HTTP header line into socket
headerLine = "HTTP/1.1 200 OK\n"
connectionSocket.send(headerLine.encode())
connectionSocket.send("\n".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()
break
serverSocket.close()
Допустим, существуетфайл HelloWorld.html в каталоге, где также хранится файл python сервера.Когда я запускаю сервер и набираю http://(IP):9998/HelloWorld.html, где (IP) - это адрес IPv4, который я получил от своего ноутбука, как показано на рисунке ниже, он работает хорошо (на рисунке (IP) - 10.230.6.97).
Мой Macbook Pro Wifi
Однако, если я вставлю тот же URL-адрес в другую машину с (IP), скажем, мой смартфон не использует то же соединение Wi-Fi, котороеноутбук использует, мой телефон просто не может добраться до URL.
Почему это так?
Заранее спасибо!