Python的学习之旅———UDP

udp传输是不需要建立链接.

udp 没有listen(5)

udp没有accept

udp 一个send 对应一个recvfrom

udp不会粘包

在liunx上如果发送的udp大于接受的,就会丢弃多余的字节

在windows上会报错

服务端

 1 from socket import *
 2 
 3 server=socket(AF_INET,SOCK_DGRAM)
 4 server.bind(('127.0.0.1',8080))
 5 
 6 # server.listen(5) #udp没有
 7 # server.accept() #udp没有
 8 
 9 # while True: #udp没有连接,更不可能有连接循环了
10     # server.accept() #udp没有
11 
12 while True: #通信循环
13     msg,client_addr=server.recvfrom(1024)
14     print(msg)
15     server.sendto(msg.upper(),client_addr)

客户端

from socket import *

client=socket(AF_INET,SOCK_DGRAM)
# client.connect(('127.0.0.1',8080)) #udp没有连接

while True:
    msg=input('>>: ').strip()
    client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))

    msg,server_addr=client.recvfrom(1024)
    print(msg)

udp不可靠,发送消息之后就会将内存中的信息删除.

 

posted @ 2017-11-16 14:39  恩是的  阅读(197)  评论(0编辑  收藏  举报