Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSError:[Errno 22]参数套接字python套接字无效_Python_Sockets_Udp - Fatal编程技术网

OSError:[Errno 22]参数套接字python套接字无效

OSError:[Errno 22]参数套接字python套接字无效,python,sockets,udp,Python,Sockets,Udp,我有一些应用程序使用UDP套接字。每个应用程序都可以发送和接收日期。 在接收数据的应用程序中,代码如下: 接收器应用程序: UDPSocket=socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM) 缓冲区大小=1024 EnginePort=2000 def ReceiveSocket(): 全局UDPSocket 全局地址端口 全局缓冲区大小 地址端口=(“127.0.0.2”,EnginePort) #绑定到地址和ip UDP

我有一些应用程序使用UDP套接字。每个应用程序都可以发送和接收日期。
在接收数据的应用程序中,代码如下:
接收器应用程序:

UDPSocket=socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM)
缓冲区大小=1024
EnginePort=2000
def ReceiveSocket():
全局UDPSocket
全局地址端口
全局缓冲区大小
地址端口=(“127.0.0.2”,EnginePort)
#绑定到地址和ip
UDPSocket.bind(AddressPort)
打印(“UDP服务器启动并侦听”)
bytesAddressPair=UDPSocket.recvfrom(缓冲区大小)
message=pickle.load(字节地址对[0])
地址=字节地址对[1]
clientMsg=“来自客户端的消息:{}”。格式(消息)
clientIP=“客户端IP地址:{}”。格式(地址)
打印(clientMsg)
打印(客户端)
尽管如此:
ReceiveSocket()
发送一条简单的消息:

导入套接字
进口泡菜
UDP_IP=“127.0.0.2”
UDP_端口=2000
MESSAGE=“你好,世界!”
打印(“UDP目标IP:,UDP_IP”)
打印(“UDP目标端口:”,UDP_端口)
打印(“消息:”,消息)
sock=socket.socket(socket.AF_INET,socket.sock_DGRAM)#UDP
sock.sendto(pickle.dump(消息),(UDP_IP,UDP_端口))
接收数据时,请告诉我以下错误:
接收机输出:

来自客户的消息:你好,世界!
客户端IP地址:('127.0.0.2',2003)
回溯(最近一次呼叫最后一次):
文件“/home/pi/RoomServerTestApps/Engine.py”,第88行,在
ReceiveSocket()
文件“/home/pi/RoomServerTestApps/Engine.py”,第29行,在ReceiveSocket中
UDPSocket.bind(AddressPort)
OSError:[Errno 22]参数无效
但是当
ReceiveSocket()
之外,而true()在
之外时,应用程序运行良好。
请帮我解决这个问题。
谢谢。

让bind()退出循环。您已经在第一次运行时绑定到端口,这就是第二次+运行失败的原因

AddressPort=(“127.0.0.2”,引擎端口)
UDPSocket.bind(AddressPort)
def ReceiveSocket():
...