编写myqq即时聊天脚本,实现相互通信
主要涉及socket通信,tcp协议
与udp相比,tcp有一些不同。对比见程序中的注释。
udp链接 https://mp.youkuaiyun.com/postedit/83316495
注意:执行时要先运行server端,这也是跟udp的不同之一。
# TCP-Server
import socket
# 1. 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2. 将 socket 绑定到指定地址
#127.0.0.1这儿可以为空,表示可以接受任意主机的请求。
#127.0.0.1表示本机
address = ('127.0.0.1', 10140)
s.bind(address)
# 3. 接收连接请求
#udp没有
#主要作用:修改服务器端的socket状态为监听状态(不会产生阻塞)
s.listen(5)# 4. 等待客户请求一个连接(实现三次握手,会产生阻塞)
#与udp最主要的区别,udp没有这一步建立连接的过程# 调用 accept 方法时,socket 会进入 "waiting" 状态。
# accept方法返回一个含有两个元素的元组 (connection, address)。
# 第一个元素 connection 是新的 socket 对象,服务器必须通过它与客户