-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathudp_ar_condionado.py
56 lines (43 loc) · 2.08 KB
/
udp_ar_condionado.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import socket, sys, os
HOST = '127.0.0.214' # endereço IP Localhost
#HOST = '192.168.2.27' # endereço IP
PORT = 20004 # Porta utilizada pelo servidor
BUFFER_SIZE = 1024 # tamanho do buffer para recepção dos dados
def main(argv):
valor = "25"
status = 1
try:
# Create a datagram socket
# SOCK_DGRAM - UDP, AF_INET - IPv4
UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# Bind to address and ip
UDPServerSocket.bind((HOST, PORT))
print("\nAr condicionado UDP server up and listening")
# Listen for incoming datagrams
while(True):
bytesAddressPair = UDPServerSocket.recvfrom(BUFFER_SIZE) #recebe os dados do cliente
mensagem = bytesAddressPair[0].decode() #converte de bytes para um formato "printável", [0] é a mensagem e [1] é o endereço do cliente
endereco = bytesAddressPair[1]
# clientMsg = "Mensagem do cliente:{}".format(mensagem)
# clientIP = "Client IP Address:{}".format(endereco)
# print(clientMsg)
# print(clientIP)
# # envia o mesmo texto ao cliente
# UDPServerSocket.sendto(mensagem, endereco)
if(mensagem == "conectar"):
print("\nConectando o Ar condicionado...")
UDPServerSocket.sendto("ar_condicionado".encode(), endereco)
UDPServerSocket.sendto(valor.encode(), endereco)
UDPServerSocket.sendto(str(status).encode(), endereco)
elif(mensagem == "alterar"):
print("\nAlterando as configurações do Ar condicionado...")
valor = UDPServerSocket.recvfrom(BUFFER_SIZE)[0].decode()
print("Valor: ", valor)
status = UDPServerSocket.recvfrom(BUFFER_SIZE)[0].decode()
print("Status: ", status)
except Exception as error:
print("Erro na execução do servidor!!")
print(error)
return
if __name__ == "__main__":
main(sys.argv[1:])