前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >udp客户端收发数据流程

udp客户端收发数据流程

作者头像
汪凡
发布2018-05-29 13:22:20
2.3K0
发布2018-05-29 13:22:20
举报
文章被收录于专栏:python成长之路python成长之路

1、创建客户端socket开始进行通讯。 2、这时服务端应该先启动,并在知道服务端的ip以及端口号的时候才能进行通讯。 3、本地不需要绑定ip以及端口号,在用此套接字对象发送消息的时候会自动分配活动端口(1024-65535) 每次重启程序可能每次都不一样。 4、然后对将要发送的信息进行编码处理,然后将编码后的字节码发送到指定服务端ip以及端口。 5、这里还可以进行消息的接收,在这里接收消息首先得要发送数据到指定的服务端,告诉服务端客户端的ip以及所使用的端口是什么。 6、如果先进行消息阻塞是收不到消息的,这里客户端不需要绑定端口可以理解成在客户端把数据发送到服务端以后系统在后台默默地 把客户端ip以及端口和客户端绑定了起来。这样服务端发送的消息就能被客户端所接收。 7、接受到消息同样要进行解码,解码形式与服务端发送过来数据的编码格式相对应,把字节码转换成能看懂的数据进行打印。 8、最后进行客户端udp套接字关闭。

from socket import *
# 客户端

# 定义客户端udp套接字
socket_udp = socket(AF_INET, SOCK_DGRAM)
# 确定目标ip以及端口,这里是服务端在局域网内的ip地址以及服务端绑定的端口号
dest_addr = (' 这里填写服务端ipv4地址   ', 8989)

while True:
    # 输入发送数据
    temp_data = input('客户端:')
    # 加上具体对象形成对话形式
    temp_data = '客户端:' + temp_data
    # 对将要发送的数据进行编码,目标地址使用的什么编码去解码接收,则在这里使用什么编码去进行编码
    socket_data = temp_data.encode('gbk')
    # 调用套接字里udp发送数据的函数sendto()
    socket_udp.sendto(socket_data, dest_addr)
    # 准备接收数据,接收长度为1024
    temp_recv_data = socket_udp.recvfrom(1024)
    # 对接收到的数据进行解码
    socket_udp_recv_data = temp_recv_data[0].decode('gbk')
    # # 对接收到的消息进行打印
    # print(socket_udp_recv_data, '\n对方发送数据所使用的端口号是:', temp_recv_data[1][1])
    # 对接收到的消息进行打印
    print(socket_udp_recv_data)
# 发送完毕,关闭udp套接字、
# socket_udp.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档