2015-04-20 3 views
1

Я использую python для подключения двух малиновых pi через последовательный порт. один pi отправит данные на другой пи. и другой pi будет выполнять определенную задачу в зависимости от полученных данных. Могу ли я использовать Ethernet-порт для этой функции? Есть ли функция, аналогичная serial.read() и serial.available() в случае Ethernet-порта.подключить два малины pi через ethernet кабель

Я написал простую программу сервера

import socket 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
host=socket.gethostname() 
port=12345 
s.bind((host, port)) 
s.listen(5) 
while True: 
    c, addr = s.accept() 
    print 'got connection from',addr 
    c.send('Thank you for connecting') 

    c.close() 

и клиентская программа является

import socket    

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)   
host = socket.gethostname() 
port = 12345    
s.connect((host, port)) 
print s.recv(1024) 
s.close      

ошибка подключение не производится, потому что целевая машина активно отказаться. в чем моя ошибка?

ответ

0

Да, вы можете использовать ethernet для этой цели. Вы можете создать соединение TCP между двумя машинами. Подобно серийному соединению, это даст вам поток с байтом, байтом.

+0

сэр, пожалуйста, укажите пример. предположим, что один pi имеет статический IP-адрес 192.168.0.12, а другой - 192.168.0.21 –

+0

@AkashNil Я не уверен, что вы хотите использовать. Вы можете перенести «пример TCP python» в свою любимую поисковую систему. –

+0

импорта сокета S = socket.socket (socket.AF_INET, socket.SOCK_STREAM) хост = socket.gethostname() порт = 12345 s.bind ((хост, порт)) s.listen (5) в то время как True: c, addr = s.accept() print 'получил соединение от', addr c.send ('Спасибо за подключение') c.close() –

Смежные вопросы