第65天python学习TCP 和 UDP流程差异
tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端。
服务器:
ss = socket() #创建服务器套接字 ss.bind() #把地址绑定到套接字 ss.listen() #监听链接 inf_loop: #服务器无限循环 cs = ss.accept() #接受客户端链接 comm_loop: #通讯循环 cs.recv()/cs.send() #对话(接收与发送) cs.close() #关闭客户端套接字 ss.close() #关闭服务器套接字
客户端:
cs = socket() # 创建客户套接字 cs.connect() # 尝试连接服务器 comm_loop: # 通讯循环 cs.send()/cs.recv() # 对话(发送/接收) cs.close() # 关闭客户套接字
udp是无链接的,先启动哪一端都不会报错
服务器:
ss = socket() #创建一个服务器的套接字 ss.bind() #绑定服务器套接字 while True : #服务器无限循环 cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送) ss.close() # 关闭服务器套接字
客户端:
cs = socket() # 创建客户套接字 while True : # 通讯循环 cs.sendto()/cs.recvfrom() # 对话(发送/接收) cs.close() # 关闭客户套接字
UDP实例化:服务器:
import socket ip_port=('127.0.0.1',9000) udp_server_client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) udp_server_client.bind(ip_port) while True: msg,addr=udp_server_client.recvfrom(1024) print(msg,addr) udp_server_client.sendto(msg.upper(),addr)
UDP实例化:客户端:
from socket import * udp_cs=socket(AF_INET,SOCK_DGRAM) while True: msg=input('>>: ').strip() if not msg:continue udp_cs.sendto(msg.encode('utf-8'),('127.0.0.1',9000)) msg,addr=udp_cs.recvfrom(1024) print(msg.decode('utf-8'),addr)
posted on 2019-11-16 21:57 坚持是多么伟大的事情 阅读(208) 评论(0) 编辑 收藏 举报