python_TCP_IP_realtime_graph - 8BitsCoding/RobotMentor GitHub Wiki

ํ”„๋กœ์ ํŠธ ์ •๋ณด

  • ์ œ์ž‘์‹œ์ž‘์ผ : 19.09.22
  • ์ œ์ž‘์ข…๋ฃŒ์ผ : 19.09.22
  • ์–ธ์–ด : Python3.7
  • IDE : Pycharm2019.01.01(Community)
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : PyQt5, matplotlib, drawnow, numpy, random
  • GitHub ์ฃผ์†Œ : https://github.com/GoodayTH/python_tcp_udp_realtime_graph

ํ”„๋กœ์ ํŠธ ๊ณ„ํš

์ด๋ฏธ์ง€

Send Btn ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Server์ชฝ์—์„œ ๋žœ๋ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  Client์ชฝ์—์„œ ๋žœ๋ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ทธ๋ ค์ค€๋‹ค.

ํ”„๋กœ์ ํŠธ๋Š” Python TCP/UDP/WEB toolsํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ ๋‹ค.

์ด๋ฏธ์ง€


ํ•ต์‹ฌ์ฝ”๋“œ

client ์ˆ˜์‹ ์ธก์—์„œ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ

def tcp_client_concurrency(self, address):
    while True:
        recv_msg = self.tcp_socket.recv(1024)
        if recv_msg:
            msg = recv_msg.decode('utf-8')

            msg_recv = 'Target IP:{}Port:{}:\n{}\n'.format(address[0], address[1], msg)

            self.graph_cnt = self.graph_cnt+1
            self.x.append(self.graph_cnt)
            # self.y.append(np.random.random())
            self.y.append(int(msg))

            plt.bar(self.x, self.y)
            drawnow(self.makt_fig)

            self.signal_write_msg.emit(msg_recv)

๋žœ๋ค ๋ฐ์ดํ„ฐ ์ฃผ๊ธฐ์  ์†ก์‹ 

def tcp_send_RD(self):

    self.send_RD_th = threading.Thread(target=self.tcp_send_RD_concurrency)
    self.send_RD_th.start()


def tcp_send_RD_concurrency(self):
    if self.link is False:
        # msg = '่ฏท้€‰ๆ‹ฉๆœๅŠก๏ผŒๅนถ็‚นๅ‡ป่ฟžๆŽฅ็ฝ‘็ปœ\n'
        msg = 'Check Service and click connect button\n'
        self.signal_write_msg.emit(msg)
    else:
        try:
            while True:
                send_msg = (str(randint(0, 100))).encode('utf-8')
                if self.comboBox_tcp.currentIndex() == 0:
                    # ๅ‘ๆ‰€ๆœ‰่ฟžๆŽฅ็š„ๅฎขๆˆท็ซฏๅ‘้€ๆถˆๆฏ
                    for client, address in self.client_socket_list:
                        client.send(send_msg)
                    # msg = 'TCPๆœๅŠก็ซฏๅทฒๅ‘้€\n'
                    msg = 'TCP Server Send\n'
                else:
                    msg = 'this service only enable for tcp server'
                self.signal_write_msg.emit(msg)
                sleep(1)
        except Exception as ret:
            # msg = 'ๅ‘้€ๅคฑ่ดฅ\n'
            msg = 'Send Error\n'
            self.signal_write_msg.emit(msg)