UDP 无法通过 python 中的两个设备通过 WiFi 工作

问题描述 投票:0回答:1

我对 UDP 非常陌生,我正在尝试使用 python 连接两个设备。它们都在同一网络上运行。我编写了适用于同一设备的代码:

服务器:

import socket

# Create a UDP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# Bind the socket to the server address and port
server_address = '192.168.1.1'  # Replace with the server's IP address
server_port = 12345
server_socket.bind((server_address, server_port))

print(f"Server is running on {server_address}:{server_port}")

try:
    while True:
        # Wait for a message
        print("\nWaiting to receive a message...")
        data, address = server_socket.recvfrom(4096)

        print(f"Received {len(data)} bytes from {address}")
        print(data.decode())

        if data:
            sent = server_socket.sendto(data, address)
            print(f"Sent {sent} bytes back to {address}")

finally:
    print("Closing the server socket")
    server_socket.close()

客户:

import socket

# Create a UDP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

server_address = '192.168.1.2'  # Replace with the server's IP address
server_port = 12345

try:
    # Send data
    message = 'This is the message. It will be echoed back!'
    print(f"Sending: {message}")
    sent = client_socket.sendto(message.encode(), (server_address, server_port))

    # Receive response
    print("Waiting to receive")
    data, server = client_socket.recvfrom(4096)
    print(f"Received: {data.decode()}")

finally:
    print("Closing the client socket")
    client_socket.close()

当我尝试在具有相同 IP 的另一台计算机上使用客户端代码时,出现错误:

"Traceback (most recent call last):
  File "Desktop\client.py", line 9, in <module>
    server_socket.bind((server_address, server_port))
OSError: [WinError 10049] The requested address is not valid in its context"

如何解决这个问题?

非常感谢您的宝贵时间

更新:将两台 Windows 计算机的连接设置为私有使错误消失,但是现在两台计算机都停留在“接收”消息上。

python server udp client
1个回答
0
投票

好的成功了。

首先,我确保两个 Windows 设备都可以在网络中发现。我将它们设置为私人。 其次,我在入站和出站端口上添加了端口 12345。 第三,我将两个设备的IP更改为相同(服务器IP)。虽然该代码也适用于服务器 ip 设置为空 ('') 的情况

© www.soinside.com 2019 - 2024. All rights reserved.