udp协议

#udp客户端
# import socket
# #udp
# client=socket.socket(type=socket.SOCK_DGRAM)
#
#
# #直接发
# client.sendto(b'lqz',('127.0.0.1', 8003))
# data=client.recvfrom(1024)
# print(data)

#加入通信循环
import socket
#udp
client=socket.socket(type=socket.SOCK_DGRAM)

while True:
    msg=input('>>:')
    #直接发
    client.sendto(msg.encode('utf-8'),('127.0.0.1', 8003))
    data=client.recvfrom(1024)
    print(data)
#udp服务端

# 基础版本
# import socket
# #udp
# server=socket.socket(type=socket.SOCK_DGRAM)
#
# server.bind(('127.0.0.1', 8003))
# # udp不要建立连接,直接发
# #需不需要监听?
# #跟tcp的不是一样的
# # data=server.recvfrom(1024)
# data,addr=server.recvfrom(1024)
# #data 是个元组,第一个参数是数据不部分,第二个参数是客户端地址
# print(data)
# server.sendto(data.upper(),addr)


#加入通信循环

import socket
#udp
server=socket.socket(type=socket.SOCK_DGRAM)

server.bind(('127.0.0.1', 8003))

while True:
    data,addr=server.recvfrom(1024)
    print(data)
    server.sendto(data.upper(),addr)

udp协议是否粘包

#udp服务端


#udp 协议没有粘包问题(udp协议又叫数据报协议),可以发空,tcp不行
import socket
server=socket.socket(type=socket.SOCK_DGRAM)

server.bind(('127.0.0.1', 8003))
while True:
    data,addr=server.recvfrom(1024)
    print(data)
    server.sendto(data.upper(),addr)

# data,addr=server.recvfrom(1024)
# print(data)
# data,addr=server.recvfrom(1024)
# print(data)
# data,addr=server.recvfrom(1024)
# print(data)
# data,addr=server.recvfrom(1024)
# print(data)
#udp的客户端

import socket
#udp
client=socket.socket(type=socket.SOCK_DGRAM)

# while True:
#     msg=input('>>:')
#     #直接发
#     client.sendto(msg.encode('utf-8'),('127.0.0.1', 8003))
#     data=client.recvfrom(1024)
#     print(data)

client.sendto('lqz'.encode('utf-8'),('127.0.0.1', 8003))
client.sendto('hello'.encode('utf-8'),('127.0.0.1', 8003))
client.sendto('world'.encode('utf-8'),('127.0.0.1', 8003))
client.sendto(''.encode('utf-8'),('127.0.0.1', 8003))
#不沾包
#udp的客户端丢包

import socket
#udp 不会管客户端或者服务端是否收到,它只管发,所以不可靠
client=socket.socket(type=socket.SOCK_DGRAM)

while True:
    msg=input('>>:')
    #直接发
    client.sendto(msg.encode('utf-8'),('127.0.0.1', 8003))
    # data=client.recvfrom(1024)
    # print(data)



#udp特点
    #-可以发空(数据报协议,自带头)
    #-客户端和服务端可以有一方没在线(因为不需要建立连接)
posted on 2019-09-09 16:48  黑糖A  阅读(116)  评论(0编辑  收藏  举报