所以我想弄清楚如何在两个Pi Zero W单元之间发送字符串数据。我希望其中一位与我同在,其中一位与我的一位朋友在她家中。我真的很困惑这将如何工作。我在我的房屋中发现了一些似乎对这两个单元都适用的代码,但是将IP地址更改为朋友的公用IP并尝试在她的房屋中使用它后,一切都没有成功。我对使用Internet协议还很陌生,因此不胜感激。
Send.py
import sys
from socket import socket, AF_INET, SOCK_DGRAM
SERVER_IP = ''
PORT_NUMBER = 5000
SIZE = 1024
print ("Test client sending packets to IP {0}, via port
{1}\n".format(SERVER_IP,
PORT_NUMBER))
mySocket = socket( AF_INET, SOCK_DGRAM )
while True:
myMessage = input()
mySocket.sendto(myMessage.encode('utf-8'),(SERVER_IP,PORT_NUMBER))
sys.exit()
Receive.py
#!/usr/bin/env python3
from socket import socket, gethostbyname, AF_INET, SOCK_DGRAM
import sys
PORT_NUMBER = 5000
SIZE = 128
hostName = gethostbyname( '0.0.0.0' )
mySocket = socket( AF_INET, SOCK_DGRAM )
mySocket.bind( (hostName, PORT_NUMBER) )
print ("Test server listening on port {0}\n".format(PORT_NUMBER))
while True:
(data,addr) = mySocket.recvfrom(SIZE)
print(data.decode('utf-8'))
sys.exit()
答案 0 :(得分:1)
如果要将它们连接在一起:
您可以在路由器管理页面中检查是否在NAT后面,检查路由器从ISP分配的IP地址是否与Internet上的服务器看到的IP地址相同。进行以下查询:
https://www.google.com/search?q=what+is+my+ip+address)
如果它们相同,那么您就不会落后于ISP的NAT,并且可能就不会出现问题。如果不同,则您与其他ISP的客户共享IP,并且您无法运行自己的服务器应用程序,该应用程序会将其端口公开给互联网。