无法从其他设备访问本地主机站点

时间:2020-06-20 19:44:35

标签: python sockets localhost

我编写了一个简单的程序,该程序绑定到计算机内部ip和端口80(http端口)。

import socket
import time as t
from datetime import datetime


def gettime():
    unix_stamp = t.time()
    dt_object = datetime.fromtimestamp(unix_stamp)
    dt_object = str(dt_object).split()
    return dt_object[1], dt_object[0]


HOST = socket.gethostbyname(socket.gethostname())
print(f"[LOG::{gettime()[0]}]   {HOST}")
PORT = 80

index = open("index.html", "r")

MySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
MySocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
MySocket.bind((HOST, PORT))
MySocket.listen(3)


client_socket, (client_ip, client_port) = MySocket.accept()
print(f"[LOG::{gettime()[0]}]   {client_ip}:{client_port}")
client_socket.send(index.read().encode('utf-8'))

client_socket.shutdown(1)

t.sleep(10)

client_socket.close()
print(f'[LOG::{gettime()[0]}]    DONE AND CLOSED')

当我尝试从运行脚本的计算机连接到我的网站时,就会获得该网站以及所有内容。但是,当我尝试通过手机或其他机器进行操作时,它无法连接到该站点。 我的“服务器端”笔记本电脑具有有线连接。电话和另一台机器都无线连接到调制解调器路由器或接入点。

1 个答案:

答案 0 :(得分:1)

要在本地网络上工作,HOST值必须与您的外部本地地址不同,例如192.168.1.10。如果在这种情况下没有连接,则问题可能出在操作系统或路由器的网络设置上。