nov
16
Para quem precisa apenas se conectar em um servidor usando Python e mandar e receber comandos eis uma classe simples que fiz e uso para diversos projetos.
class UserSocket:
"""
Classe de comunicacao
Exemplo:
UserSocket("10.13.97.81", 2100)
"""
def __init__(self, host, port):
"""
Construtor do driver de conexao
"""
self.__host = host
self.__port = port
self.connect_server()
def connect_server(self):
"""
Realiza a conexao com o servidor
"""
try:
self.__soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
self.__soc.connect((self.__host, self.__port))
except Exception:
return False
return True
def close_server(self):
"""
Fecha a conexao com o servidor
"""
try:
self.__soc.close()
except Exception:
return False
return True
def receive_data(self):
"""
Recebe os dados do buffer do servidor
"""
data = ''
chunk = ' '
while (len(data) < 1) or (chunk != '\n'):
chunk = self.__soc.recv(1)
if chunk == '':
raise RuntimeError, "socket connection broken"
data = data + chunk
return data
def send_data(self, data):
"""
Envia dados para o servidor
"""
try:
self.__soc.sendall(data)
except Exception:
return False
return True
Usando …
>>> s = UserSocket("10.13.97.81", 2100)
>>> data = s.receive_data()
>>> s.send_data("COMANDO")
… você poderá se comunicar com qualquer servidor socket.
Comments
Leave a Reply