用Python写一个简单的聊天小程序

2018-03-01 11:04:54来源:https://www.jianshu.com/p/f6defb3a5cf5作者:python达人人点击

分享


学习Python已经快一年了,一路走来,有辛酸也有欢乐。在学完了基础的编程知识后,便开始了对Python的应用做了研究。第一个接触的是Python web开发,学了一个多月的前端之后,开始了对Python web框架的研究。就这样,学了一段东西之后,基本能写一些简答的网页。可是我发现自己仅仅基于别人的框架去写,并不理解其中的原理所在。于是便从最开始的socket开始研究,想要一步步写出自己的框架。后来接触了异步,了解了tornado框架。写出了自己的异步非堵塞框架,尽管写的并不是很好,还需要完善,但毕竟写了出来,因此想要一点点的记录下来

在这里还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴

话不多说,直接进入正题。今天写一个简单的即时交流小程序

先来看看服务端代码





首先创建一个socket对象,其中有两个默认参数

family=AF_INET, type=SOCK_STREAM

第一个代表IPV6,第二个代表使用TCP协议。接着绑定IP地址(元组格式),listen表示最大连接数。





accept表示服务器在监听,等待客户端连接,默认堵塞,即程序会卡在这里,直到客户端连接。一旦客户端连接,将返回两个对象,一个是与客户端连接的socket对象,另外一个是客户端的地址





recv函数用来接收客户端的数据,1024表示最大接收字节数





send函数用来发给客户端数据。在socket中所有数据以字节传输

再来看看客户端





和服务端一样,要先实例化一个对象,使用connect函数连接服务端的accept函数。同样使用send和recv函数来收发数据。

开看看完整的代码





服务端





客户端

其中使用了while循环来多次收发数据。








最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台