使用ngrok访问python服务器(web服务器)

使用ngrok访问python服务器(web服务器),python,curl,networking,ngrok,Python,Curl,Networking,Ngrok,我有一个python网络服务器代码 导入套接字 主机,端口=“”,5000 listen\u socket=socket.socket(socket.AF\u INET,socket.SOCK\u流) 侦听\u socket.setsockopt(socket.SOL\u socket,socket.SO\u REUSEADDR,1) 侦听\u socket.bind((主机、端口)) 监听插座。监听(1) 打印('在端口%s上提供HTTP…'%port) 尽管如此: 客户端\连接,客户端\地址

我有一个python网络服务器代码

导入套接字
主机,端口=“”,5000
listen\u socket=socket.socket(socket.AF\u INET,socket.SOCK\u流)
侦听\u socket.setsockopt(socket.SOL\u socket,socket.SO\u REUSEADDR,1)
侦听\u socket.bind((主机、端口))
监听插座。监听(1)
打印('在端口%s上提供HTTP…'%port)
尽管如此:
客户端\连接,客户端\地址=侦听\套接字。接受()
request=client_connection.recv(1024)
打印(请求)
http_response=“”\
HTTP/1.1200ok
内容类型:text/html;字符集=utf-8
你好,世界!
"""
client\u connection.sendall(http\u response.encode())
客户端连接。关闭()
我有一个访问服务器的客户端代码

导入套接字
主机='127.0.0.1'
端口=5000#服务器使用的端口
尝试:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
打印“已成功创建套接字”
s、 连接((主机、端口))
s、 sendall('GET/'))
数据=s.recv(1000)
打印('已接收',报告(数据))
s、 接近
除了socket.error作为错误:
打印“套接字创建失败,错误为%s”%(错误)
当我执行服务器和客户端时,它与预期的输出配合良好

Socket successfully created
('Received', "'HTTP/1.1 200 OK\\nContent-Type: text/html; charset=utf-8\\n\\n<H1>Hello, World!</H1>\\n'")
使用
curl
,我可以使用ngrok访问Web服务器

> curl http://d2fccf7f.ngrok.io 
<H1>Hello, World!</H1>
我将端口更改为80或8080,但结果相同


可能有什么问题

根据oguz ismail的提示,我制作了以下请求头以使其工作。我认为应该需要主机信息和空行

试试看:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
打印“已成功创建套接字”
s、 连接((主机、端口))
header=''GET/HTTP/1.1\r\n主机:d2fccf7f.ngrok.io\r\n\r\n''
...

根据oguz ismail的提示,我制作了以下请求头以使其工作。我认为应该需要主机信息和空行

试试看:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
打印“已成功创建套接字”
s、 连接((主机、端口))
header=''GET/HTTP/1.1\r\n主机:d2fccf7f.ngrok.io\r\n\r\n''
...

我是否可以建议尝试类似于
pyngrok
的方法,以编程方式为您管理
ngrok
隧道?完全公开,我是它的开发者。Socket和其他TCP示例是。

我是否可以建议尝试类似于
pyngrok
的方法,以编程方式为您管理
ngrok
隧道?完全公开,我是它的开发者。套接字和其他TCP示例是。

根据
curl
命令,
端口应为
80
。客户端代码的行为是什么?永远封锁?等一下,因为这是一个公共地址,我们应该能够测试它,对吗?您没有在这里发送完整的HTTP请求。可能您的ISP正在阻止此类可疑消息根据您的
curl
命令,
端口应为
80
。客户端代码的行为是什么?永远封锁?等一下,因为这是一个公共地址,我们应该能够测试它,对吗?您没有在这里发送完整的HTTP请求。可能是您的ISP正在阻止此类可疑消息
> curl http://d2fccf7f.ngrok.io 
<H1>Hello, World!</H1>