Я пытаюсь создать одноранговую сеть с помощью pyp2p python Framework (ссылка: https://pypi.org/project/pyp2p/)
Я использую 64-битную Windows 10 и Python 3.7.2
следуя примерам, приведенным в примере кода
Я пытался запустить скрипт прямого подключения:
from pyp2p.net import *
from pyp2p.unl import UNL
from pyp2p.dht_msg import DHT
import time
#Start Alice's direct server.
alice_dht = DHT()
alice_direct = Net(passive_bind="192.168.0.45", passive_port=44444, interface="eth0:2", net_type="direct", dht_node=alice_dht, debug=1)
alice_direct.start()
#Start Bob's direct server.
bob_dht = DHT()
bob_direct = Net(passive_bind="192.168.0.44", passive_port=44445, interface="eth0:1", net_type="direct", node_type="active", dht_node=bob_dht, debug=1)
bob_direct.start()
#Callbacks.
def success(con):
print("Alice successfully connected to Bob.")
con.send_line("Sup Bob.")
def failure(con):
print("Alice failed to connec to Bob\a")
events = {
"success": success,
"failure": failure
}
#Have Alice connect to Bob.
alice_direct.unl.connect(bob_direct.unl.construct(), events)
#Event loop.
while 1:
#Bob get reply.
for con in bob_direct:
for reply in con:
print(reply)
#Alice accept con.
for con in alice_direct:
x = 1
time.sleep(0.5)
Я ожидал получить Alice successfully connected to Bob
или Alice failed to connect to Bob
.
Вместо этого я получаю следующую ошибку:
HTTPConnectionPool (host = 'localhost', port = 80): Превышено максимальное количество повторов с помощью url: /dht_msg.php?call=get_mutex&node_id=496d34347a7538665053586d3064aa676aa66a66a66a66a66a5Wc1MuYdOpeP1h6B72tGz84UGQCGE0Z (вызвано NewConnectionError (': не удалось установить новое соединение: [WinError 10061] Невозможно установить соединение, поскольку целевая машина активно отказывала в этом')) Traceback (последний вызов был последним): файл "direct.py", строка8, в файле alice_dht = DHT () "C: \ Users \ farouk.hdhili \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ pyp2p \ dht_msg.py", строка 83, в init assert (self.is_mutex_ready.is_set ()) AssertionError
Я также попытался отключить брандмауэр Windows с помощью команды: NetSh Advfirewall выключил состояние allprofiles
, но ничего не изменилось.
Есть ли какие-либо настройки, которые необходимо выполнить перед запуском скрипта, или что-то еще?