Я пытаюсь написать программирование сокетов в python. Всякий раз, когда клиент отправляет сообщение серверу, светодиод должен мигать. Я запускаю серверную программу на Raspberry pi и клиент на ПК.Программирование сокетов Python и интерфейсы светодиодов
Вот код сервера, который работает на моем Pi.
#!/usr/bin/python # This is server.py file
import socket # Import socket module
import time
import RPi.GPIO as GPIO # Import GPIO library
GPIO.setmode(GPIO.BOARD) # Use board pin numbering
GPIO.setup(11, GPIO.OUT) # Setup GPIO Pin 11 to OUT
GPIO.output(11,False) # Init Led off
def led_blink():
while 1:
print "got msg" # Debug msg
GPIO.output(11,True) # Turn on Led
time.sleep(1) # Wait for one second
GPIO.output(11,False) # Turn off Led
time.sleep(1) # Wait for one second
GPIO.cleanup()
s = socket.socket() # Create a socket object
host = "192.168.0.106" # Get local machine name
port = 12345 # Port
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print 'Got connection from', addr
msg = c.recv(1024)
msg1 = 10
if msg == msg1:
led_blink()
print msg
c.close()
Вот код клиента, который работает на моем ПК.
#!/usr/bin/python # This is client.py file
import socket # Import socket module
s = socket.socket() # Create a socket object
host = "192.168.0.106" # Get local machine name
port = 12345 # port
s.connect((host, port))
s.send('10')
s.close
Я получаю сообщение от клиента, но не могу мигать светодиодом. Извините, я новичок в кодировании. У меня довольно хорошие знания в области аппаратного обеспечения, но не в программном обеспечении. Пожалуйста, помогите мне.
Вы сравниваете строку с номером. Замените код сервера на 'msg1 =" 10 "'. Если это не сработает, вы видите «полученный msg» в консоли? – Goufalite
В вашей функции 'led_blink()' находится цикл 'while 1'. Это ваша цель? – rocksteady
Да! После замены его на строку я могу мигать светодиодом. Thank you – Arunkrishna