gpt4 book ai didi

python - Python 中的 Raspberry PI 服务器/客户端套接字

转载 作者:行者123 更新时间:2023-11-28 16:38:35 24 4
gpt4 key购买 nike

我正在尝试在我的 Raspberry Pi(运行 Raspbian)和我的 Macbook Pro(运行 Mavericks)之间设置一个 Python 套接字。

两个设备都连接到我的 appt 中的同一个 WiFi 网络。我在我的 RPi 上运行服务器代码,然后在我的 Macbook 上运行客户端代码(我也尝试过相反的操作)。我认为我错过了一个设置步骤,因为我在多个站点上找到了我正在使用的代码,所以我认为它可以工作。我还检查了我的 Macbook 是否关闭了防火墙。

服务器代码:

from socket import *

host = "127.0.0.1"

print host

port = 7777

s = socket(AF_INET, SOCK_STREAM)

print "Socket Made"

s.bind((host,port))

print "Socket Bound"

s.listen(5)

print "Listening for connections..."

q,addr = s.accept()

data = raw_input("Enter data to be sent: ")

q.send(data)

客户端代码:

from socket import *

host = "127.0.0.1"

print host

port=4446

s=socket(AF_INET, SOCK_STREAM)

print "socket made"

s.connect((host,port))

print "socket connected!!!"

msg=s.recv(1024)

print "Message from server : " + msg

我收到错误:

Traceback (most recent call last):
File "TCPclient.py", line 9, in <module>
s.connect((host,port))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py",

line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 61] Connection refused

我执行代码的过程是:

  • 在树莓派终端输入“python TCPserver.py”

  • 在 Macbook 终端中输入“python TCPclient.py”

然后我在 Macbook 上收到错误消息,在 RPi 上没有错误

我的问题是:

  1. 127.0.0.1 是“主机”的正确输入吗? (请注意我也试过“localhost”)
  2. 对于客户端和服务器代码,host 的输入是否必须相同?
  3. RPi 和 Macbook 是否应该连接到同一个 WiFi 网络?
  4. 是否需要在 RPi 或我的 Macbook 上进行任何设置才能使其正常工作(请注意我的 RPi 是型号 B,新的,在此之前我没有在其上设置任何其他东西)
  5. 您知道我为什么会收到此错误以及如何解决吗?

非常感谢您的帮助!!

最佳答案

127.0.0.1 是本地机器的特殊 IP 地址。
您必须在客户端代码中设置您的 mac 的真实 IP 地址(在您的 LAN 上)。
您还应该在服务器上绑定(bind)到此 IP,或者在 0.0.0.0 上绑定(bind)到所有可用的 IP 地址。
您还必须在客户端和服务器上使用相同的端口号。

并回答您的问题:

127.0.0.1 是“主机”的正确输入吗? (请注意我也试过“localhost”)
127.0.0.1 与 localhost 相同,表示 native 。如果您在同一台机器上运行客户端和服务器,这将起作用,否则您需要 mac 的真实 IP 地址。在控制台中尝试 ifconfig

对于客户端和服务器代码,host 的输入是否必须相同?
是和不是。在服务器上,您绑定(bind)到一个端口和一个地址,因此您将等待此端口和地址上的连接。您可以使用 IP 地址,或 0.0.0.0。

RPi 和 Macbook 是否应该连接到同一个 WiFi 网络?
是和不是。它将与同一个 WiFi 网络一起工作,但如果两个不同的 WiFi 网络直接连接在一起或与 IP 路由器连接,它也可以与两个不同的 WiFi 网络一起工作。大多数时候,虽然它们通过 NAT(网络地址转换器)连接到互联网,但它无法正常工作。

是否需要在 RPi 或我的 Macbook 上进行任何设置才能使其正常工作(请注意我的 RPi 是型号 B,新的,在此之前我没有在其上设置任何其他东西)
我不太了解 RPi,但它看起来像标准的 TCP 套接字,开箱即用。

您知道我为什么会收到此错误以及如何解决吗?
正如我在开头所说:您尝试在错误的端口上连接到 RPi (127.0.0.1)。

关于python - Python 中的 Raspberry PI 服务器/客户端套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22737838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com