python简单聊天工具开发
Whoere开发报告
开发背景:
随着聊天工具的快速发展以及自己知识的逐渐积累,自己也想试试能不能写出一个简单的有聊天功能的程序来。开始是没有一点思路的,不知道客户端和服务端之间怎么连接起来,后来百度之后才知道一个叫socket的东西,至于开发语言,自己想了想决定用一种新语言写,顺便可以多接触一门新语言。于是我就找到了python,先是在网上看教程,把python的语法基本了解,后面才开始了一步步的操作。
设计:
1.首先得熟悉socket的用法。
2.编写一个简单的客户端和服务端,只用户之间实现可以互相私发消息。
3.测试bug并修复。
4.添加新的功能,群聊,公告等等
5.测试bug并修复。
开发环境:
PC:windows10+Python3.6
开发过程:
1.首先是实现客户端之间简单的私信。首先得在客户端和服务端建立socket连接
服务端:
客户端:
(127.0.0.1是本机地址,19998是自定义的一个端口,可以随便输入,但一般大一点比较好,因为有的端口已经被许多服务器占用了)
然后就要开始实现客户端与服务端的通信了,在服务端需要建立几个数组来存储不同客户端的socket和user_id,已经一个link函数进行服务端与客户端的互动。在此需要多线程:
客户端需要一个listen函数来监听服务端是否发过来消息。在此也需要用到多线程:
然后在将用户需要进行的动作放进死循环中
看到这或许就有点头痛了,什么encode和decode啊?哈哈,我只能说这是一种编码,剩下的百度吧。在此给出廖雪峰大佬的一个讲解链接
字符编码问题
讲得很好了,应该可以看懂。
剩下的就是在服务端中添加send函数了
然后在link函数中添加
这里ctime()是time里面的一个函数,可以获取当前时间,便于服务器监听客户端的通信。到此,基本的私信功能基本就完成了。
效果如图:
在服务端:
到此基本就完成了基本功能了
程序优化:
一个程序肯定少不了优化的,因为有很多隐藏的bug需要你去修复,而且需要加一些功能,万事开头难,做好第一步之后其他的就很简单了,无非就是创建几个函数的问题,在此就不细说啦。
总结:
程序本身没有什么商业价值,仅仅时学习期间的一个练习测试,所以也就不加什么比较高级的功能进去了。在此说说我做的过程中的问题,开始对socket很迷惑,不知道服务端怎么给不同的客户端发消息,后面才发现sock.send()这个函数中的sock对于不同的客户端是不同的,服务端就是通过这个来给指定的用户发消息。后面就是对那个编码问题很困惑,什么encode过去又decode过来呀,后面经过多次百度才知道到底是啥,在多线程中也遇到了种种问题,但收获也颇丰,虽然程序就是个简单的聊天的工具,但在制作过程中不断拓展自己的知识和开拓自己的眼界才是最重要的,所以,一定要自己动手做,看懂跟自己做完全是两回事。
源码地址(如果直接复制粘贴可能会出现缩进问题):
https://github.com/wang19980301/Whoere/
python简单聊天工具开发相关推荐
- 基于AI伪原创API的python伪原创工具开发
功能上分别具有4种ai智能算法,在线伪原创,批量伪原创,自定义文本替换等功能,自定义锁词,在线API功能.可以对接采集工具和个人网站使用.智能改写后的文章具有可读性高,原创度高的特点,对各大搜索引擎都 ...
- 基于JAVA的聊天工具开发
基于JAVA的聊天工具开发 转眼大四,在紧张的考研备战间隙,我开始整理大学三年来的学习资料与感悟,希望与大家分享一些我的总结与感悟. 以下的报告是大二下学期参加计算机学院工程训练后所写.这个 ...
- Python 微信自动化工具开发系列02_自动获取微信多个好友聊天信息(2023年1月可用)
前言 一个需求需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理, 比如自动回复,再比如自动发送文件或者其他.--- 记录于2022年07月 ...
- Python 微信自动化工具开发系列04_所有微信群的群文件自动同步拷贝到群名对应的新文件夹中(2023年1月可用)
前言 一个需求需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理, 比如自动回复,再比如自动发送文件或者其他.--- 记录于2022年08月 ...
- iOS一个简单聊天工具的实现
Top 简易的聊天工具 1.1 问题 Socket的英文原义是孔或者插座的意思,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,本案例使用第三方Socket编程框架AsyncSocket ...
- 最简单测试工具开发教程(有手就行)
测试脚本,相信任何一个正经测试都会写. 但是作为公司的测试达人,写了py脚本,然后分享出去,让别人去安装python,下载各种依赖,无疑是一件很low的事情. 常用的方式有2种: 1.写web,让别人 ...
- 国产开源软件j-im搭建简单聊天工具过程
朋友说想搭个聊天服务器.经过多方研究,发现网上有一款开源软件J-IM,是搭建在国产通讯工具t-io上的,作者经过J-IM封装,已经变成了成熟产品谭聊,基础的东西作者也进行了开源.本着学习和研究的目的, ...
- 融云 php sdk下载,Android 即时语音聊天工具 开发
使用融云SDKphp 1. 功能需求分析html 1.1 核心功能需求:java * 即时通信android * 文字聊天git * 语音聊天github 1.2 辅助功能需求:数据库 * 注册.登陆 ...
- python伪原创工具开发_在线伪原创工具www.bolewei.com的开发过程
中文伪原创工具需要考虑的问题 我开始思考,目前已有的中文伪原创工具,效果差在哪些地方呢?我想到以下几个: 一.分词问题. 中文和英文不同,无论是搜索引擎的蜘蛛,还是其他自然语言处理的语料分析,都是需要 ...
- python伪原创工具开发_现在有哪些好用的伪原创工具?
有些自媒体人或者博主可能经常苦于写不出原创稿子而大把的掉头发吧(程序员也掉!),最近是不是毕业崽们被论文折磨的痛不欲生?说白了就是为了原创,就是为了降重,那么今天这篇你不能错过!好几个软件(网站),贝 ...
最新文章
- Mac下使用OpenCV
- YTU 2887: D--机器人Bill
- solver.prototxt参数说明(一)
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第9题——斐波那契
- java 线程池 wait,Java 多线程 之 wait等待 线程实例
- 【今日CV 视觉论文速览】20 Nov 2018
- win10下如何安装.NetFrame3.5框架
- FZCCHJW--GB1-0-GBpc-EUC-H:在系统中未找到字体;已替换缺少的字体。
- abaqus结果名称
- Tar的详细用法(转自Linux伊甸园)
- Deity is on the struggling road too!
- 王道计算机组成原理课代表 - 考研计算机 第二章 数据的表示和运算 究极精华总结笔记
- JAVAFX界面跳转和加载不同的界面
- 剑指spring源码(三)
- 计算机平面设计基础 photoshop基本操作
- 蓝牙适配器使用说明A
- KBL410-ASEMI整流桥KBL410
- 17、内容页面 - 小程序端开发 - 微擎小程序模块应用开发
- 关于业务安全平台架构设计,顶象给“我”讲透了
- DevOps的发展史
热门文章
- git 操作报错(fatal: ‘xxx’ does not appear to be a git repository)
- 北大计算机系女神每天必看必学的IT公众号
- 平面广告设计课程中发散思维训练
- 51采集温度电压电流+LCD1602显示
- 从微软CEO纳德拉身上学习如何拯救一个企业
- 智商测试图片素材软件,智商测试图片 测试你智商的图片[100P]
- 权限管理大升级,开源智能客服系统春松客服 v6 版本发布 | Chatopera
- 多线程- 让程序更高效的运行
- Flutter —快速开发的IDE快捷方式
- 【工具使用】GPU的各项参数说明