前言:
今天小伙伴们对“基于python的聊天软件”大体比较关怀,大家都想要知道一些“基于python的聊天软件”的相关资讯。那么小编同时在网摘上汇集了一些有关“基于python的聊天软件””的相关知识,希望你们能喜欢,各位老铁们一起来了解一下吧!先睹为快:聊天软件对话
在学习编程语言的过程中,自己动手去编写代码是最有效的学习方式,比如自行编写计算器,日历,时钟,聊天工具等,因此,本文就为大家介绍:基于python的聊天程序实战开发!
话不多说,先睹为快:
视频加载中...
下面本文将详细介绍上述程序的具体代码细节,附带TCP/IP协议的socket编程相关知识!
聊天程序设计与代码详解
本文介绍的聊天程序实现的是客户端与服务器之间的直接通信,但可以作为读者了解并深入学习socket编程的入门经典程序,下面先介绍该程序的socket通信程序设计步骤与代码!
★ 服务器程序设计步骤
1、创建socket套接字2、绑定socket到指定IP和端口3、开始监听来自客户端的连接4、等待客户端连接请求5、连接成功则读取套接字中的信息6、服务器向客户端发送信息7、关闭socket套接字
★ 服务器代码与注释
★服务器代码详解
socket():创建socket实例localhost:服务器的IP地址,因客户端和服务器都在本机,故采用本机环路IP地址(localhost=127.0.0.1)bind():绑定IP地址与端口,参数要求元组形式 -(服务器IP地址字符串,端口号)listen(1):允许一个客户端连接,可设为naccept():返回服务器与当前客户端之间的新套接字(clientconn)和当前客户端的IP地址(clientaddr)。新套接字专用于该客户端与服务器通信,每个客户端连接服务器都会有各自的新套接字。若无客户端请求连接,则服务器一直等待。recv():接收新套接字中的数据,解码方式为utf-8。send():服务器向客户端回传信息close():关闭套接字
★ 客户端程序设计步骤
1、创建socket套接字2、连接远程主机(服务器)3、连接成功则可发送信息4、读取服务器回传的信息5、关闭socket套接字
★ 客户端代码与注释
★客户端代码详解
connect():用于连接服务器,参数要求元组形式 -(服务器IP地址字符串,端口号)127.0.0.1:服务器的IP地址,因客户端和服务器都在本机,故采用本机环路IP地址(localhost=127.0.0.1)send()/recv()/close():同server代码详解附录:Python网络编程知识简化易记版
一、、TCP三次握手连接图解
白话TCP三次握手连接过程:
客户端:我要发起连接了,服务器,你准备好了吗?服务器:我准备好了,客户端,你准备好了吗?客户端:我也准备好了,服务器,下面我开始发送数据了!
其实TCP的三次握手连接就跟人与人距离较远时喊话通信一样!
ACK:Acknowledge,确认序号有效SEQ:Sequence Number,序号,32位,标记从客户端发送到服务器的数据包序号SYN:Synchronous,建立一个新连接
三次握手重要之处:
1. 发送方确认对方是否收到自身发送的数据是通过“ACK”号确定的!
2. 发送方总会记录自己发出的数据包序号 SEQ,对方收到该数据包后回传确认数据,发送方检查对方回传数据中的“ACK”号是否等于SEQ + 1,若成立,则说明对方正确收到了自己的数据包!
二、TCP四次握手断开图解
白话TCP四次握手断开过程:
客户端:数据发送完成,服务器,我想断开连接了服务器:好的,客户端,请稍等一会,我来做准备片刻时间之后……服务器:客户端,我已经准备好了,你可以断开连接了客户端:好咧,感谢配合
ACK:Acknowledge,确认序号有效SEQ:Sequence Number,序号,32位,标记从客户端发送到服务器的数据包序号FIN :Finish,断开一个连接
三、Python网络编程模块汇总
四、socket模块函数汇总
总结
本文中的聊天程序其实无法实现多个客户端之间的交流,与实际意义上的聊天功能尚有区别!
因此,在下篇文章中,将为大家介绍多个客户端之间的聊天程序开发,来模拟接近真实的聊天软件功能!
标签: #基于python的聊天软件 #python聊天