【发布时间】:2021-11-01 16:13:13
【问题描述】:
我想将我的笔记本电脑(以及后来的树莓派/Jetson nano)连接到服务器。目标是能够将数据发送到服务器,然后对其进行处理和评估,并将输出(GPS 坐标)发送回客户端(笔记本电脑/树莓派/Jetson nano)。 理想情况下,我只需将 Google 服务器的公共 IP 地址插入在客户端上运行的代码中并连接到服务器。
但是,运行服务器代码:
import socket
HOST = '127.0.0.1' # Standard loopback interface address (localhost)
PORT = 65432 # Port to listen on (non-privileged ports are > 1023)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
和客户端代码:
import socket
HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 65432 # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received', repr(data))
提供者:https://realpython.com/python-sockets/。
仅适用于默认的本地 IP 地址,否则返回 IP 地址找不到错误。
编辑:答案更倾向于通过谷歌云 API 连接互联网。该解决方案完美地说明了这一点,但是我的问题不够明确,抱歉!
【问题讨论】:
-
你说的改成了google云服务器一号。那个地址是什么?在大多数情况下,您希望监听所有网络接口。该地址是 0.0.0.0。注意:Google Cloud 公共 IP 地址未绑定到网络接口。您不能使用该地址。 127.0.0.1是localhost,只能从操作系统内部访问。
标签: python sockets google-cloud-platform google-cloud-functions