python - 无法从其他设备访问本地主机站点
问题描述
我编写了一个简单的程序,它绑定到机器内部 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')
当我尝试从运行脚本的机器连接到我的站点时,我得到了网站和所有内容。但是当我从我的手机或另一台机器上尝试时,它无法连接到该站点。我的“服务器端”笔记本电脑有有线连接。电话和另一台机器都无线连接到调制解调器路由器或该调制解调器路由器的接入点。
解决方案
要在本地网络上工作,HOST 值必须与您的外部本地地址不同,例如 192.168.1.10。如果在这种情况下您没有连接,则问题可能出在操作系统或路由器的网络设置中。
推荐阅读
- java - 如何使用 CSS 选择器在元素之间进行选择
- error-handling - 无法在 Gerrit 中加载插件事件日志
- mongodb - 在 MongoDB 中获取文档的一部分
- android - 发生内部错误。[ MISSING_CLIENT_IDENTIFIER ]
- javascript - html5 文件输入 - 如何使用 javascript 更改文件文本的颜色?
- c# - 将大量数据从 DB 写入 CSV 文件的快速有效方法
- android - 如何通过 android mediamuxer 复用多片 h264 流
- java - 我应该将我的 jsp 文件保存在哪里,以便我可以将我的 Name.java 类用于表单支持对象?
- java - 从 spring-boot 休息控制器返回 JSON 对象
- owl - 如何表示具有相同值的不同类的实例是来自另一个类的实例?