我有一个项目,通过无线将1个覆盆子pi 3型号B作为服务器连接到2个覆盆子pi 0。我尝试了下面的代码,但我总是在server.bind('',port)
:
socket.error: [Errno 95] oparation not supported
服务器代码:
from time import sleep
import socket
lim=2
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port=5555
address=('',port)
server.bind(address)
server.listen(2)
con, addr=server.accept
while True:
data1=con.recv(1234)
print ("received ", data1, " from first client")
data2=con.recv(1234)
print ("received ", data2, " from second client")
if data1>=lim:
data1.send("0")
if data2>=lim :
data2.send("0")
else:
data2.send("1")
elif data2>=lim:
data1.send("1")
data2.send("0")
elif data1+data2<lim:
data1.send("1")
data2.send("1")
elif data1>=data2:
data1.send("1")
data2.send("0")
else:
data1.send("invalid")
data2.send("invalid")
sleep(2)
server.close()
客户代码:
from time import sleep
import socket
import requests
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(38, GPIO.IN)
GPIO.setup(40, GPIO.OUT)
client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip='192.168.1.2'
port=5555
address=(ip,port)
client.connect(address)
while True:
ci=GPIO.input(38)
client.send(ci)
co=1
if co==0:
GPIO.output(40, GPIO.LOW)
elif co==1:
GPIO.output(40, GPIO.HIGH)
else:
print ("invalid")
sleep(2)
client.close()
在客户端代码中client.connect(address)
中的错误
我该如何解决这个问题?
答案 0 :(得分:0)
我认为您需要在服务器端提供相同的IP。
而不是address=('',port)
试试address=('192.168.1.2',port)
。我认为应该这样做。