优点:
- 可靠,稳定
- 适合传输大量数据
缺点:
- 传输速度慢
- 占用系统资源高
TCP和UDP区别
- TCP面向连接; UDP是不面向连接;
- TCP提供可靠的数据传输,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP不保证可靠的数据传输,容易出现丢包情况;
- TCP需要连接传输速度慢,UDP不需要连接传输速度快
- TCP不支持发广播;UDP支持发广播
- TCP对系统资源要求较多,UDP对系统资源要求较少。
- TCP适合发送大量数据,UDP适合发送少量数据
- TCP有流量控制,UDP没有流量控制
TCP客户端代码
import socket # 创建tcp socket tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 目的信息 server_ip = input("请输入服务器ip:") server_port = int(input("请输入服务器port:")) # 链接服务器 tcp_client_socket.connect((server_ip, server_port)) # 提示用户输入数据 send_data = input("请输入要发送的数据:") tcp_client_socket.send(send_data.encode("gbk")) # 接收对方发送过来的数据,最大接收1024个字节 recvData = tcp_client_socket.recv(1024) print('接收到的数据为:', recvData.decode('gbk')) # 关闭套接字 tcp_client_socket.close()
tcp服务器
- socket创建一个套接字
- bind绑定ip和port
- listen使套接字变为可以被动链接
- accept等待客户端的链接
- recv/send接收发送数据
- tcp服务端绑定端口号,程序退出后端口号不会立即释放,解决办法可以设置socket选项,让程序退出端口号立即释放,也称为端口号复用