zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python 网络编程之过多线程在两个单独的 GUI 之间进行通信(教程含完整源码)

2023-09-11 14:18:32 时间

想象一下,如果您必须制作一个也可以在单个工作站上运行的聊天机器人,或者让两个单独的进程在同一工作站上运行,从而相互通信,并且它们需要对通信的消息采取行动。对于在进程之间进行通信,任何开发人员首先想到的都会是 IPC(进程间通信)。为了在python中实现IPC,使用了线程,其中单个线程表现为一个单独的进程,并且还可以与其他线程(即另一个进程)进行通信。

出于通信目的,套接字被用作最佳实践,下图使用 python 服务器-客户端套接字编程来处理通信(即以字节 UTF-8 格式传递变量和编码字符串消息)。

服务器端实现

import PySimpleGUI as sg
import threading
from _thread import *
import socket
ServerSocket = socket.socket()
host = '127.0.0.1'
port = 1233

Threading 所需的库是 Threading,用于传递消息字符串的 Socket 库和 PySimpleGUI 用于 GUI。定义服务器套接字 IP 和端口号,以便每个客户端套接字都知道应该发送消息的目的地。

sg.theme('DarkAmber')
layout = [
    [sg.Text("A sample UI for servers sending and receiving messages.",size=(80, 2),font=(20)),],
    [sg.Button('REFRESH',size=(80, 2),enable_events=True, key="-RF-",fon