def connect(ip_addr, port): """ connect to a peer """ sock = socket.socket() try: sock.connect((ip_addr, port)) except socket.error: Logger.log_error("cannot connect to peer") return sock
def start(self): for session in self.bot_sessions: session_thread = VKCoinBotSessionThread(session) try: session_thread.start() except: Logger.log_error(_("Can not start session for bot ID{}").format(session.vk_user_id)) event_loop = asyncio.get_event_loop() if self.report_enabled: event_loop.create_task(self.report()) event_loop.run_forever()
def create_bot_sessions(config: Dict) -> List[VKCoinBotSession]: bot_configs = config["bots"] bot_count = len(bot_configs) Logger.log_system(_("Found {} bots in config file").format(bot_count)) sessions = [] for bot_config in bot_configs: try: session = VKCoinBotSession(bot_config) session.setup() sessions.append(session) except Exception: Logger.log_error(_("Can not load bot with config #{}").format(bot_config)) if not sessions: Logger.log_error(_("No sessions created")) return sessions
def send(self, sock, msg): """ sends data to peer from socket """ try: peer_ip, peer_port = sock.getpeername() to_send = { "peer_ip": peer_ip, "peer_port": peer_port, "ip": self.ip_addr, "port": self.port } data = self.make_header(msg, to_send) data = Encoder.json_decode(data) sock.send(data) except socket.error: Logger.log_error("cant send to peer")