亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python套接字連接到ngrok服務器

python套接字連接到ngrok服務器

慕森王 2024-01-27 15:05:11
所以我對 python 服務器有點陌生,我制作了一個簡單的程序來向服務器發送消息。當我將主機設置為192.168.x.x但我嘗試使用 ngrok 時它可以工作,這樣如果我在另一個網絡上我就可以訪問服務器。但是我似乎不知道如何讓它發揮作用。這也可能不是最好的方法,所以如果有人能提出更好的方法,那就太好了,但現在我有:托管在 192.168.xx:8080 上的服務器轉發到我的 IP 的 ngrok 隧道以及將數據發送到該 ngrok 地址的客戶端程序這是主機代碼:import socketserverclass MyTCPHandler(socketserver.BaseRequestHandler):    def handle(self):        # self.request is the TCP socket connected to the client        self.data = self.request.recv(1024).strip()        print("{} wrote:".format(self.client_address[0]))        print(self.data)if __name__ == "__main__":    HOST, PORT = "192.169.x.x", 8080    server = socketserver.TCPServer((HOST, PORT), MyTCPHandler)    server.serve_forever()這是客戶端:import socketwith socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:    ip = socket.gethostbyname('http://urlgoeshere.ngrok.io')    print(ip)    sock.connect((ip, 8080))    sock.sendall(bytes("hello" + "\n", "utf-8"))恩格羅克是:Forwarding                    http://urlhere.ngrok.io -> http://192.168.x.x注意:當我使用我的計算機 IP 而不是使用 ngrok 時,這有效,所以我知道這不是主機的問題沒有錯誤,但服務器似乎沒有響應
查看完整描述

3 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

我不熟悉 ngrok,但在本地托管您的代碼我發現將服務器中的 HOST 更改為:

HOST, PORT = "0.0.0.0", 8080

...或者實際的本地 IP 給了我預期的響應。


查看完整回答
反對 回復 2024-01-27
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

套接字在 tcp 協議上工作,但您嘗試使用 http。我通過 LogMeIn Hamachi 解決了這個問題。它與套接字完美配合。您也可以使用 ngrok,但需要升級到 Pro 或 Business 計劃才能使用 tcp。


查看完整回答
反對 回復 2024-01-27
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

使用 ngrok 3.5.0(也可能是早期版本),您可以免費使用 tcp。


啟動ngrok:./ngrok tcp 8080


...

Forwarding                    tcp://0.tcp.ngrok.io:19906 -> localhost:8080

...

然后在您的客戶端代碼中使用:


HOST, PORT = "0.tcp.ngrok.io", 19906

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

    s.connect((HOST, PORT))

    ...


查看完整回答
反對 回復 2024-01-27
  • 3 回答
  • 0 關注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號