前言:
当前咱们对“net聊天室源码”可能比较注意,各位老铁们都想要了解一些“net聊天室源码”的相关资讯。那么小编也在网上网罗了一些对于“net聊天室源码””的相关文章,希望看官们能喜欢,朋友们一起来了解一下吧!【背景】
公司内部想要有一个可用于局域网网的聊天软件,方便部门同事们业务沟通。
做好了老板肯定开心。
上次讲了服务端的源码,今天讲下半部分客户端的源码。
【分析】
客户端需要有一个GUI界面和用户交互。
需要有两个主要线程,一个线程用来处理GUI交互,一个线程用来监听服务端信息。
【源码分析】
1. 引入python包,除了同Server一样需要引入Threading和Socket,为实现简单GUI还需要引入tkinter;
import socket
import threading
import tkinter
import tkinter.scrolledtext
from tkinter import simpledialog
2. HOST和PORT这两个基本变量赋值,注意,这里因为我是在一台机器上演示,所以HOST也写成了127.0.0.1,如果真的部署到局域网,这里要写Server的内网IP:
HOST = '127.0.0.1'
PORT = 9090
3. 创一个Client类并写构造函数。所有接下来的功能也在类下写,封装到Client类内部。
class Client:
def __init__(self,host,port):
self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.sock.connect((host,port))
msg = tkinter.Tk()
msg.withdraw()
self.nickname = simpledialog.askstring("Nickname","Please choose a nickname",parent = msg)
self.gui_done = False
self.running = True
gui_thread = threading.Thread(target=self.gui_loop)
receive_thread = threading.Thread(target=self.receive)
gui_thread.start()
receive_thread.start()
4. 创建gui_loop函数用来设置并展示GUI界面
5. gui_loop函数中给Send按钮绑定的write方法用来向Server机发送信息,并在发送后清空输入框自身内容
6. gui函数中调用的Stop方法用来在gui关闭后彻底释放资源并关闭Socket,结束程序
7. 最后的Receive函数和Server端的类似,用一个while true持续监听服务端的信息并做出反馈,直到与服务端的连接中断才跳出循环
8. 最后生成client实例即可
【源码下载】
半杯奶茶钱获得服务端客户端全部源码,可直接运行:
标签: #net聊天室源码