通过无线连接3树莓派

时间:2018-06-16 17:25:48

标签: python

我有一个项目,通过无线将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)中的错误 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为您需要在服务器端提供相同的IP。 而不是address=('',port) 试试address=('192.168.1.2',port)。我认为应该这样做。