Peer-to-peer nós para processamento em multipontos

Publicado por Diego Lopes (última atualização em 31/05/2024)

[ Hits: 1.316 ]

Homepage:

Download node.py




Script simulam uma rede usando multipontos, o script pode ser alterado para rodar em quantos computadores forem desejados.
Esta conexão usa protocolo UDP.

  



Esconder código-fonte

#Author:Diego Silva
#Date:04/23/2024
#Description:node to generate service and change information

import socket
from threading import Thread
import time 
#setting info to server
HOST=''
PORT=4000
logged_node=False
VERSION='1.0.0.0'
nodehost='192.168.15.7'
nodepor=4001

#thread process
class ProcessNode(Thread):

    def __init__(self,udp,udp_client):
        Thread.__init__(self)
        self.udp = udp
        self.udp_client = udp_client
       

    def run(self):
        try:
            if logged_node==False:
                logged_node=True
                self.udp_c.sendto(b'hello',(nodehost,nodepor))
        except:
            logged_node=False
            
        while 1:
            msg, client = self.udp.recvfrom(1024)
            print(msg)
            try:
                self.udp_client.sendto(msg,(nodehost,nodepor))
            except:
                print("Node don't found")
            time.sleep(2)
            print("Done process")
        self.udp.close()


#class up to server udp
class UpServerSetting:

    def settingServerNode(self):
        msg="Error to up node, check setting port/host"
        try:
            print("Initing node server")
            server_udp = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
            server_udp.bind((HOST,PORT))
            msg="Node is Done"
        except:
            print("Fail to up node of net")
        finally:
            print(msg)
            return server_udp

#class to clint another node
class UpClientSetting:

    def settingClientNode(self):

        msg="Error To Generate Client"
        try:
            client_udp = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
            msg="Done Object client udp"
        except:
            print(msg)
        finally:
            print(msg)
            return client_udp
    
if __name__ == '__main__':
    print('Head Of Hydra  {}'.format(VERSION))
    sett = UpServerSetting()
    udp = sett.settingServerNode()
    sett_client = UpClientSetting()
    udp_c = sett_client.settingClientNode()
    udp_c.sendto(b'hello',(nodehost,nodepor))
    
    while True:
        msg, client =  udp.recvfrom(1024)
        if(msg.decode()=='hello'):
            print("Client loggin: ",msg.decode())
            process = ProcessNode(udp,udp_c)
            process.start()
    print('Finishing client connection', client)
    udp.close()
    #process = ProcessNode(udp)
    #process.start()



Scripts recomendados

Ligando máquina pela rede usando Python

Importar múltiplos hosts ZABBIX

Scanner de rede com threading

Verifica conexão - Ping

HCoin - Preço do Dólar, Bitcoin e Euro em Python


  

Comentários
[1] Comentário enviado por maurixnovatrento em 23/06/2024 - 15:42h

muito show.
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts