第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 坚持是多么伟大的事情 阅读(211) 评论(0) 收藏 举报
浙公网安备 33010602011771号