Host-customized fork of https://github.com/tecnovert/basicswap/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
#!/usr/bin/env python |
|
# -*- coding: utf-8 -*- |
|
|
|
# Copyright (c) 2020 tecnovert |
|
# Distributed under the MIT software license, see the accompanying |
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php. |
|
|
|
''' |
|
TODO: |
|
''' |
|
|
|
import select |
|
import socket |
|
import logging |
|
|
|
|
|
class Peer: |
|
pass |
|
|
|
|
|
class Network: |
|
def __init__(self, p2p_host, p2p_port, network_key): |
|
self._p2p_host = p2p_host |
|
self._p2p_port = p2p_port |
|
self._network_key = network_key |
|
self._peers = [] |
|
|
|
self._max_connections = 10 |
|
self._running = True |
|
|
|
def listen(self): |
|
self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|
self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
|
self._socket.bind((self._p2p_host, self._p2p_port)) |
|
self._socket.listen(self._max_connections) |
|
|
|
while self._running: |
|
readable, writable, errored = select.select([self._socket], [], []) |
|
for s in readable: |
|
client_socket, address = self._socket.accept() |
|
read_list.append(client_socket) |
|
logging.info('Connection from %s', address)
|
|
|