TCP 基于连接的, 是连续的, 可靠的, 效率? 较低, 更像是打电话, 聊天的过程中不能中断.
传输控制协议 (TCP,Transmission Control Protocol) 是一种面向连接的, 可靠的, 基于字节流的传输层通信协议
服务器端
- # server_tcp.py
- import socket
- sk = socket.socket() # 创建 socket 对象
- sk.bind(("192.168.36.106", 6666)) # 绑定 IP 和端口号
- sk.listen() # 开启监听
- print("开启监听!")
- conn, address = sk.accept() # 等待客户端连接 阻塞
- print("客户端连接成功!")
- while 1: # 开始和客户端聊天, 以下程序是服务端先发送消息
- conn.send(input(">>>:").strip().encode("utf-8"))
- msg = conn.recv(1024) # 阻塞
- print(f"来自客户端的消息:{msg.decode('utf-8')}")
- if msg.decode("utf-8").upper() == "BYE":
- break
- conn.close()
- sk.close()
客户端
- # client_tcp.py
- import socket
- sk = socket.socket() # 创建 socket 对象
- sk.connect(("192.168.36.106", 6666)) # 连接服务端
- while 1:
- msg = sk.recv(1024)
- print("来自服务端的消息:", msg.decode('utf-8'))
- if msg.decode("utf-8").upper() == "BYE":
- break
- sk.send(input(">>>:").strip().encode('utf-8'))
- sk.close()
注意:
1, 先启动服务器端程序, 再启动客户端程序.
2, 服务器端先发送消息, 客户端收到消息后, 再发送消息给服务器端.(程序怎么写, 谁先发送消息)
来源: http://www.bubuko.com/infodetail-3320983.html