UDP标准模型

伪代码

#服务端
#创建UDP服务器
ss = socket()  #创建一个服务器套接字
ss.bind()       #绑定服务器套接字
inf_loop:       #服务器无限循环
    cs = ss.recvfrom()/ss.sendto()   #对话(接收与发送)
ss.close()      #关闭服务器套接字

#客户端
#创建一个UDP服务器
cs = socket()     #创建客户端套接字
comm_loop:      #通讯循环
    cs.sendto()/cs.recvfrom()   #对话(发送/接收)
cs.close()   #关闭客户端套接字

标准实例:

#服务端
from socket import *
server = socket(AF_INET,SOCK_DGRAM)
server.bind(('127.0.0.1',9100))
while True:
    conn,addr = server.recvfrom(1024)
    print("访问来自%s,端口号是:%s" % (addr[0],addr[1]))
    server.sendto(conn.upper(),addr)   #返回消息的时候,必须指定端口号和ip

#客户端1
from socket import *
client = socket(AF_INET,SOCK_DGRAM)
while True:
    data = input(">>>")   #发送空格也行,不会报错,一次发送,也不会占用资源
    client.sendto(data.encode("utf-8"),('127.0.0.1',9100))
    conn,addr = client.recvfrom(1024)
    print(conn.decode('utf-8'))

#客户端2
from socket import *
client = socket(AF_INET,SOCK_DGRAM)
while True:
    data = input(">>>")
    client.sendto(data.encode("utf-8"),('127.0.0.1',9100))
    conn,addr = client.recvfrom(1024)
    print(conn.decode('utf-8'))

执行结果:

访问来自127.0.0.1,端口号是:60715
访问来自127.0.0.1,端口号是:60716

 

posted @ 2017-11-30 22:58  明王不动心  阅读(346)  评论(0编辑  收藏  举报