网络编程---tcp/udp协议
协议使用场景:
udp协议(User Datagram Protocol) 即时通讯类的软件 :qq 微信 飞信 歪歪
tcp协议(Transmission Control Protocol) 发邮件\文件的时候
TCP协议:
面向连接\可靠\慢\对传递的数据的长短没有要求
两台机器之间要想传递信息必须先建立连接
之后在有了连接的基础上,进行信息的传递
可靠 : 数据不会丢失 不会重复被接收
慢 : 每一次发送的数据还要等待结果

import socket sk = socket.socket() sk.bind(('127.0.0.1',9001)) sk.listen() while True: conn,addr = sk.accept() while True: msg = input('>>>') conn.send(msg.encode('utf-8')) if msg.upper() == 'Q': break content = conn.recv(1024).decode('utf-8') if content.upper() == 'Q': break print(content) conn.close() sk.close()TCP协议 server端

import socket sk = socket.socket() sk.connect(('127.0.0.1',9001)) while True: ret = sk.recv(1024).decode('utf-8') if ret.upper() == 'Q':break print(ret) msg = input('>>>') sk.send(msg.encode('utf-8')) if msg.upper() == 'Q': break sk.close()TCP协议 client端
当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。
在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。UDP协议:
无连接\不可靠\快\不能传输过长的数据
机器之间传递信息不需要建立连接 直接发就行
不可靠 : 数据有可能丢失

import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.bind(('127.0.0.1',9001)) while True: msg,client_addr = sk.recvfrom(1024) print(msg.decode('utf-8')) content = input('>>>') sk.sendto(content.encode('utf-8'),client_addr) sk.close()UDP协议 server端

import socket sk = socket.socket(type=socket.SOCK_DGRAM) server_addr = ('127.0.0.1',9001) while True: content = input('>>>') if content.upper() == 'Q':break sk.sendto(content.encode('utf-8'),server_addr) msg = sk.recv(1024).decode('utf-8') if msg.upper() == 'Q':break print(msg) sk.close()UDP协议 client端

更多精彩