学习Python已经快一年了,一路走来,有辛酸也有欢乐。在学完了基础的编程知识后,便开始了对Python的应用做了研究。第一个接触的是Python web开发,学了一个多月的前端之后,开始了对Python web框架的研究。就这样,学了一段东西之后,基本能写一些简答的网页。可是我发现自己仅仅基于别人的框架去写,并不理解其中的原理所在。于是便从最开始的socket开始研究,想要一步步写出自己的框架。后来接触了异步,了解了tornado框架。写出了自己的异步非堵塞框架,尽管写的并不是很好,还需要完善,但毕竟写了出来,因此想要一点点的记录下来
话不多说,直接进入正题。今天写一个简单的即时交流小程序
先来看看服务端代码
首先创建一个socket对象,其中有两个默认参数
第一个代表IPV6,第二个代表使用TCP协议。接着绑定IP地址(元组格式),listen表示最大连接数。
accept表示服务器在监听,等待客户端连接,默认堵塞,即程序会卡在这里,直到客户端连接。一旦客户端连接,将返回两个对象,一个是与客户端连接的socket对象,另外一个是客户端的地址
recv函数用来接收客户端的数据,1024表示最大接收字节数
send函数用来发给客户端数据。在socket中所有数据以字节传输
再来看看客户端
和服务端一样,要先实例化一个对象,使用connect函数连接服务端的accept函数。同样使用send和recv函数来收发数据。
开看看完整的代码
服务端
客户端
其中使用了while循环来多次收发数据。
私信回复源码获取源代码
联系客服