コード例 #1
0
 def __init__(self, name, port):
     self.name = name
     self.port = port
     self.socket = sk.socket()
     self.ui = Mywindow(self.name)
     self.init_host()
     self.ui.init_ui()
コード例 #2
0
 def __init__(self, name):
     self.mutex = threading.Lock()
     self.name = name
     self.socket1 = sk.socket()
     self.socket2 = sk.socket()
     self.socket3 = sk.socket()
     self.socket4 = sk.socket()
     self.memory = []
     self.ui = Mywindow(self.name)
     self.init_router()
     t_q = threading.Thread(target=self.myquit)
     t_q.start()
     self.ui.init_ui()
コード例 #3
0
class Host(object):
    def __init__(self, name, port):
        self.name = name
        self.port = port
        self.socket = sk.socket()
        self.ui = Mywindow(self.name)
        self.init_host()
        self.ui.init_ui()

    def handle_host(self, c):
        message = bytes.decode(c.recv(100))
        myfile = open(self.name + ".txt", "a")
        myfile.write(message + "\n")
        myfile.close()
        self.ui.show2("recv:" + message + "\n")
        c.close()

    def server(self, socket, port):
        socket.bind((sk.gethostname(), port))
        socket.listen(10)
        while True:
            c, addr = socket.accept()
            #print(addr)
            #t = threading.Thread(target = self.handle_host, args = (c,))
            #t.start()
            self.handle_host(c)

    def init_host(self):
        t1 = threading.Thread(target=self.server,
                              args=(self.socket, self.port))
        t1.start()
        t2 = threading.Thread(target=self.send_message)
        t2.start()
        t_q = threading.Thread(target=self.myquit)
        t_q.start()

    def send_message(self):
        i = 0
        while True:
            message = ""
            message += "header:" + remotes[random.randint(0, 2)] + "\n"
            message += "data:" + str(os.getpid()) + ":" + str(
                port) + ":" + str(i) + ":" + "161730213" + "\n"
            b_message = str.encode(message)
            s = sk.socket()
            host = sk.gethostname()
            s.connect((host, router_port))
            s.send(b_message)
            self.ui.show("send:\n" + message)
            s.close()
            i = i + 1
            time.sleep(1)

    def myquit(self):
        input("enter to quit\n")
        os._exit(0)
コード例 #4
0
# -- coding: utf-8 --
import warnings
import os
# 忽略警告
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
warnings.filterwarnings(action='ignore')
from ui import Mywindow
from sys import argv, exit
from PyQt5.QtWidgets import QApplication,QMainWindow


if __name__ == '__main__':
    app = QApplication(argv)

    window = QMainWindow()
    ui = Mywindow(window)

    window.show()
    exit(app.exec_())
コード例 #5
0
class Router(object):
    def __init__(self, name):
        self.mutex = threading.Lock()
        self.name = name
        self.socket1 = sk.socket()
        self.socket2 = sk.socket()
        self.socket3 = sk.socket()
        self.socket4 = sk.socket()
        self.memory = []
        self.ui = Mywindow(self.name)
        self.init_router()
        t_q = threading.Thread(target=self.myquit)
        t_q.start()
        self.ui.init_ui()

    def handle_host(self, c, idx):
        message = bytes.decode(c.recv(100))
        self.mutex.acquire()
        self.memory.append(message)
        self.ui.show("memory store\n" + str(self.memory) + "\n")
        self.mutex.release()
        c.close()

    def server(self, socket, port, idx):
        socket.bind((sk.gethostname(), port))
        socket.listen(10)
        while True:
            c, addr = socket.accept()
            #print(addr)
            #t = threading.Thread(target = self.handle_host, args = (c,))
            #t.start()
            self.handle_host(c, idx)

    def forward(self, num):
        while True:
            self.mutex.acquire()
            if len(self.memory):
                message = self.memory[0]
                del (self.memory[0])
                header = message.split("\n")[0]
                data = message.split("\n")[1]
                ip = header.split(":")[1]
                self.ui.show2("Thread" + str(num) + "forward: " + ip + "\n")
                data = data[5:]
                s = sk.socket()
                host = sk.gethostname()
                r_ip = ip_to_int(ip)
                if (r_ip & ip_to_int(ip_table[0][2]) == ip_to_int(
                        ip_table[0][0])):
                    idx = 0
                    self.ui.show2("Thread" + str(num) + "net_id: " +
                                  ip_table[0][0] + "\n")
                elif (r_ip & ip_to_int(ip_table[1][2]) == ip_to_int(
                        ip_table[1][0])):
                    idx = 1
                    self.ui.show2("Thread" + str(num) + "net_id: " +
                                  ip_table[1][0] + "\n")
                elif (r_ip & ip_to_int(ip_table[2][2]) == ip_to_int(
                        ip_table[2][0])):
                    idx = 2
                    self.ui.show2("Thread" + str(num) + "net_id: " +
                                  ip_table[2][0] + "\n")
                elif (r_ip & ip_to_int(ip_table[3][2]) == ip_to_int(
                        ip_table[3][0])):
                    idx = 3
                    self.ui.show2("Thread" + str(num) + "net_id: " +
                                  ip_table[3][0] + "\n")
                try:
                    if (idx == 0):
                        s.connect((host, host1_port))
                        s.send(str.encode(data))
                        s.close()
                    elif (idx == 1):
                        s.connect((host, host2_port))
                        s.send(str.encode(data))
                        s.close()
                    elif (idx == 2):
                        s.connect((host, host3_port))
                        s.send(str.encode(data))
                        s.close()
                    elif (idx == 3):
                        s.connect((host, host4_port))
                        s.send(str.encode(data))
                        s.close()
                except ConnectionRefusedError as e:
                    e = e
                    self.mutex.release()
                    continue
            self.mutex.release()

    def init_router(self):
        t1 = threading.Thread(target=self.server,
                              args=(self.socket1, port1, 0))
        t1.start()
        t2 = threading.Thread(target=self.server,
                              args=(self.socket2, port2, 1))
        t2.start()
        t3 = threading.Thread(target=self.server,
                              args=(self.socket3, port3, 2))
        t3.start()
        t4 = threading.Thread(target=self.server,
                              args=(self.socket4, port4, 3))
        t4.start()
        t_forward_1 = threading.Thread(target=self.forward, args=(1, ))
        t_forward_1.start()
        t_forward_2 = threading.Thread(target=self.forward, args=(2, ))
        t_forward_2.start()
        t_forward_3 = threading.Thread(target=self.forward, args=(3, ))
        t_forward_3.start()

    def myquit(self):
        input("enter to quit\n")
        os._exit(0)