Como conectar via socket em um servidor usando Python? 16 de novembro de 2008
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.