一、TCP和UDP对比
TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接 收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。
UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对 一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。
二、TCP和UDP下的socket
Import socket Server = socket.socket() Ip_port = (‘192.168.12.11’,8003) #127.0.0.1 本机的回环地址 Server.bind(ip_port) #绑定ip地址和端口 Server.listen() #监听ip Conn,addr = server.accept() From_client_msg = conn.recv(1024) Print(from_client_msg.decode(‘utf-8’)) Conn.send(‘大力’.encode(‘utf-8’)) Conn.close() Server.close() 客户端: Import socket Client = socket.socket() Ip_port = (‘192.168.12.11’,8003) Client.connect(ip_port) Client.send(‘奇迹’.encode(‘utf-8’)) From_server_msg = client.recv(1024) Print(from_server_msg.decode(‘utf-8’)) Client.close()
# 服务端 import socket udp_server = socket.socket(type=socket.SOCK_DGRAM) #datagram ip_port = ('127.0.0.1', 8002) udp_server.bind(ip_port) from_client_msg, client_addr = udp_server.recvfrom(1024) udp_server.sendto(b'gunduzi', client_addr) print(from_client_msg, client_addr) # 客户端 import socket udp_client = socket.socket(type=socket.SOCK_DGRAM) ip_port = ('127.0.0.1',8002) udp_client.sendto(b'hello',ip_port) from_server_msg,server_addr = udp_client.recvfrom(1024) print(from_server_msg,server_addr)