Python实战:聊天软件开发与socket编程知识大汇总(附代码)

先睹为快:聊天软件对话

话不多说,先睹为快:

聊天程序设计与代码详解

服务器程序设计步骤

1、创建socket套接字2、绑定socket到指定IP和端口3、开始监听来自客户端的连接4、等待客户端连接请求5、连接成功则读取套接字中的信息6、服务器向客户端发送信息7、关闭socket套接字

服务器代码与注释

server代码

★服务器代码详解

  • socket():创建socket实例
  • localhost:服务器的IP地址,因客户端和服务器都在本机,故采用本机环路IP地址(localhost=127.0.0.1)
  • bind():绑定IP地址与端口,参数要求元组形式 -(服务器IP地址字符串,端口 )
  • listen(1):允许一个客户端连接,可设为n
  • accept():返回服务器与当前客户端之间的新套接字(clientconn)和当前客户端的IP地址(clientaddr)。新套接字专用于该客户端与服务器通信,每个客户端连接服务器都会有各自的新套接字。若无客户端请求连接,则服务器一直等待。
  • recv():接收新套接字中的数据,解码方式为utf-8。
  • send():服务器向客户端回传信息
  • close():关闭套接字

  • 客户端程序设计步骤

    1、创建socket套接字2、连接远程主机(服务器)3、连接成功则可发送信息4、读取服务器回传的信息5、关闭socket套接字

    客户端代码与注释

    client代码

    ★客户端代码详解

  • connect():用于连接服务器,参数要求元组形式 -(服务器IP地址字符串,端口 )
  • 127.0.0.1:服务器的IP地址,因客户端和服务器都在本机,故采用本机环路IP地址(localhost=127.0.0.1)
  • send()/recv()/close():同server代码详解
  • 附录:Python 络编程知识简化易记版

    一、、TCP三次握手连接图解

    白话TCP三次握手连接过程:

    客户端:我要发起连接了,服务器,你准备好了吗?服务器:我准备好了,客户端,你准备好了吗?客户端:我也准备好了,服务器,下面我开始发送数据了!

    其实TCP的三次握手连接就跟人与人距离较远时喊话通信一样!

    TCP三次握手

    ACK:Acknowledge,确认序 有效SEQ:Sequence Number,序 ,32位,标记从客户端发送到服务器的数据包序 SYN:Synchronous,建立一个新连接

    三次握手重要之处:

    1. 发送方确认对方是否收到自身发送的数据是通过“ACK” 确定的!

    2. 发送方总会记录自己发出的数据包序 SEQ,对方收到该数据包后回传确认数据,发送方检查对方回传数据中的“ACK” 是否等于SEQ + 1,若成立,则说明对方正确收到了自己的数据包!

    二、TCP四次握手断开图解

    白话TCP四次握手断开过程:

    客户端:数据发送完成,服务器,我想断开连接了服务器:好的,客户端,请稍等一会,我来做准备片刻时间之后……服务器:客户端,我已经准备好了,你可以断开连接了客户端:好咧,感谢配合

    TCP四次握手断开

    ACK:Acknowledge,确认序 有效SEQ:Sequence Number,序 ,32位,标记从客户端发送到服务器的数据包序 FIN :Finish,断开一个连接

    三、Python 络编程模块汇总

    Python 络编程模块汇总

    四、socket模块函数汇总

    socket模块函数汇总

    总结

    因此,在下篇文章中,将为大家介绍多个客户端之间的聊天程序开发,来模拟接近真实的聊天软件功能!

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年9月17日
    下一篇 2019年9月17日

    相关推荐