Python--UDP

1)  创建UDP服务器

创建UDP服务器的伪代码:

ss = socket() # create server socket(创建服务器套接字)

ss.bind() # bind server socket(绑定服务器套接字)

inf_loop: # server infinite loop(服务器循环)

cs = ss.recvfrom()/ss.sendto()# dialog(receive/send)(进行对话(接收/发送))

ss.close() # close server socket(关闭服务器套接字)

2)  创建UDP客户端

创建UDP客户端的伪代码:

cs = socket() # create client socket( 创建客户端套接字)

comm_loop: # communication loop(通信循环)

cs.sendto()/cs.recvfrom() # dialog(send/receive)(进行对话(发送/接收))

cs.close() # close client socket(关闭客户端套接字)

3)  实际应用

tsUserv.py:

#!/usr/bin/env python
from socket import *
from time import ctime

HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

# 创建客户端套接字,SOCK_DGRAM表示使用UDP协议进行通信
udpSerSock =socket(AF_INET, SOCK_DGRAM)
# 绑定服务器套接字,因为是无连接,所以不需要listen,只是被动等待数据到来
udpSerSock.bind(ADDR)
# 服务器循环
while True:
    print('-------正在等待消息-----------')
    # 进行对话:接收消息。不产生一个新的socket,因为UDP是无连接的
    data,addr = udpSerSock.recvfrom(BUFSIZ)
    # 把bytes转换成utf-8
    data = data.decode('utf-8')
    # 进行对话:发送消息。需要写addr,因为是无连接
    udpSerSock.sendto(('[%s] %s'%(ctime(),data)).encode('utf-8'),addr)
    print('...received from and returned to:',addr)

udpSerSock.close()

tsUclnt.py:

#!/usr/bin/env python
from socket import*

HOST='localhost'
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)

# 创建客户端套接字,SOCK_DGRAM表示使用UDP协议进行通信
udpCliSock=socket(AF_INET,SOCK_DGRAM)
# 通信循环
while True:
    data=input('> ').encode('utf8')
    if not data:
        break;
    # 进行对话:发送消息
    udpCliSock.sendto(data,ADDR)
    # 进行对话,接收消息
    data,addr = udpCliSock.recvfrom(BUFSIZ)
    if not data:
        break;
    print(data.decode('utf8'))

udpCliSock.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值