python - Django 套接字:/robot/1 处的 ConnectionRefusedError,[Errno 111] 连接被拒绝
问题描述
我正在尝试连接到同一网络上的另一台设备,一个在树莓派上运行的机器人,但是当我尝试连接时出现错误。我不确定是什么原因造成的,因为它们在同一个 IP 上127.0.0.1
。如果有人对导致它的原因有任何想法,那么帮助会很大。
我的观点:
HEADER = 64
PORT = 6060
SERVER = '127.0.0.1'
ADDR = (SERVER, PORT)
FORMAT = 'utf-8'
DISCONNECT_MESSAGE = "!DISCONNECT!"
class RobotDetail(UpdateView):
model = Robot
form_class = RobotUpdateForm
template_name = 'dashboard/robotdetail.html'
def form_valid(self, form):
self.object = form.save()
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ADDR)
def send(msg):
message = msg.encode(FORMAT)
msg_length = len(message)
send_length = str(msg_length).encode(FORMAT)
send_length += b' ' * (HEADER - len(send_length))
client.send(send_length)
client.send(message)
send("HELLO")
print(self.object)
send(DISCONNECT_MESSAGE)
return render(self.request, "theblog/bloghome.html")
我的 Raspi 代码:
HEADER = 64
PORT = 6060
SERVER = '127.0.0.1'
ADDR = (SERVER, PORT)
FORMAT = 'utf-8'
DISCONNECT_MESSAGE = "!DISCONNECT!"
print(SERVER)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)
def handle_client(conn, addr):
print(f"[NEW CONNECTION] {addr} connected")
connected = True
while connected:
msg_length = conn.recv(HEADER).decode(FORMAT)
if msg_length:
msg_length = int(msg_length)
msg = conn.recv(msg_length).decode(FORMAT)
if msg == DISCONNECT_MESSAGE:
connected = False
print(f"[{ADDR}] {msg}")
conn.send("MSG Received".encode(FORMAT))
return msg
conn.close()
def start():
server.listen()
print(f"[LISTENING] Server Is Listening On {SERVER}")
while True:
conn, addr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn, addr))
thread.start()
print(f"[ACTIVE CONNECTIONS] {threading.activeCount() - 1}")
print("[Starting] Server")
start()
解决方案
推荐阅读
- android - 从 PHP 服务器获取 JSON 数据
- ignite - 阿帕奇点燃 | TCP 发现 SPI
- python - 使用 PYTHON 和 JSON 传递 API 页面
- ios - UITextView 中的 UITextField 函数不可用
- python - 从 Selenium 导入元素时,会写入 CSV 上的多行而不是一行
- kotlin - 如何在 Kotlin 中分配当前类实例
- java - 将序列图转换为 Java 代码
- python - 使用不同颜色绘制多个函数,包括导数
- powershell - 在 powershell 脚本中添加空行会产生错误
- java - HTTP 响应没有给出输出