Pythoh网络编程4:创建UDP服务器和客户端

本文介绍了如何使用Python创建UDP服务器和客户端,包括代码示例。服务器接收消息并返回带有时间戳的消息,而客户端则发送消息并接收服务器响应。

执行UDP连接的方式与TCP大致相同,不同之处在于客户端和服务器端之间不建立“连接”:

1.创建UDP服务器

 

# filename:udpServer.py

from socket import *
from time import ctime

HOST = ''                          # HOST为空与INADDR_ANY含义相同,表示任何地址
PORT = 21567                       # 端口号21567
BUFSIZE = 1024                     # 缓冲区的大小为1K

ADDR = (HOST, PORT)                # 地址元组

# 创建服务器端套接字
udpSerSock = socket(AF_INET, SOCK_DGRAM)
# 将套接字与地址绑定
udpSerSock.bind(ADDR)

# 服务器进入无限循环
while True:
    print('waiting for message...')
    # 接收来自客户端的数据,返回数据和地址元组
    re_data, addr = udpSerSock.recvfrom(BUFSIZE)
    print('...receieved from and returned to:', addr)
    # 发送数据给客户端,内容:[时间]接受的信息
    # bytes.decode()对接收的内容进行解码
    se_data = ['[', str(ctime()), ']', str(re_data.decode())]
    # str.encode()对发送内容进行编码
    udpSerSock.sendto((''.join(se_data)).encode(), addr)

# 关闭服务器端套接字
udpSerSock.close()

2.创建UDP客户端

# filename:udpClient.py

from socket import *

HOST = 'localhost'                  # HOST为localhost表示本机,可以换成其他表示服务器端的地址或者域名
PORT = 21567                        # 端口号21567
BUFSIZE = 1024                      # 缓冲区的大小为1K

ADDR = (HOST, PORT)                 # 地址元组

# 创建客户端套接字
udpCliSock = socket(AF_INET, SOCK_DGRAM)

# 通信循环
while True:
    # 提示用户输入
    se_data = input('> ')
    if not se_data:
        break
    # 向服务器端发送数据
    # str.encode()对发送内容进行编码
    udpCliSock.sendto(se_data.encode(), ADDR)

    # 接收来自服务器端的数据
    re_data, addr = udpCliSock.recvfrom(BUFSIZE)
    if not re_data:
        break
    # bytes.decode()对接收的内容进行解码
    print(re_data.decode())

# 关闭客户端套接字
udpCliSock.close() 

3.运行

 

 

转载于:https://www.cnblogs.com/fortwo/archive/2013/04/24/3041279.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值