Python 爬阶梯 | Python 操作socket 之聊天室客户端的实现

今天我们来实现聊天室的客户端,一般来说,客户端的操作越傻瓜式越好,我们主要实现这样的功能:

  • 用户可以只管的运行一个聊天室软件
  • 可以在里面看到所有聊天室用户的消息
  • 自己可以编辑消息进行发送

我们可以使用 tkinter 这个库来写一些 Python 的 GUI ,也就是客户端的聊天界面,首先导入 tk 库,然后定义一下标题:

运行一下就是这样的:

创建聊天界面布局

创建面板

接下来我们来创建聊天界面的布局,先定义三个面板,分别是用来看消息的面板,输入消息的面板,以及发送消息的面板:

创建文本和按钮

消息面板和发送消息面板都是 Text , 而发送的操作需要用到 Button:

容器位置排放

消息窗口位于第 1 行,消息输入窗口位于第 2 行,发送按钮位于第三行:

固定容器大小

可以使用 grid_propagate 来固定各个面板的大小:

文本按钮添加到容器中

最后将刚刚定义的 text 和 Button 弄进来:

运行一下:

这样我们的聊天界面就做好了,接下来需要绑定一下事件,也就是说,当我们点击发送按钮的时候,应该要触发一个事件,我们可以通过这个时间将输入框中的内容发送给 socket 服务端。

发送事件绑定

我们可以在刚刚定义的 Button 中使用 command 参数来绑定方法,从而实现点击发送按钮时候的触发:

本文隐藏内容 登陆 后才可以浏览
可以接收到消息了,我们让他们聊起来看看:

ok,这样聊天室的主要功能就实现啦,当然还有一些小地方可以优化,这两篇主要还是跟你说说 socket 的应用,以上涉及的代码会传到我们的 GitHub 中去,你可以拿去练练手。

4 Replies to “Python 爬阶梯 | Python 操作socket 之聊天室客户端的实现”

  1. dingjingxuan说道:

    socket能实现两台不同的电脑进行通信吗?

  2. 我拿websocket写过一个类似于百度网盘一样的东西,服务器端拆分文件传输,速度最大才100k 百度好久发现这个就不适合传文件,就适合聊天。。。

    1. 小帅b说道:

      是的,socket 通信主要用于实时通信,文件传输可以用文件传输的协议。

发表回复