博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
udp客户端收发数据流程
阅读量:6679 次
发布时间:2019-06-25

本文共 1201 字,大约阅读时间需要 4 分钟。

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()

                                                                   -------  知识无价,汗水有情,如需搬运请注明出处,谢谢!

转载地址:http://yefao.baihongyu.com/

你可能感兴趣的文章
c3中基本动画
查看>>
PTA基础编程题目集7-4 BCD解密
查看>>
字符串与正则表达式
查看>>
css公共样式
查看>>
ioping测试
查看>>
查看CPU是否支持虚拟化
查看>>
python使用ElementTree解析XML文件
查看>>
loadrunner关联
查看>>
usaco第三题黑色星期五
查看>>
POJ 2031 Building a Space Station (最小生成树)
查看>>
菜单的动态显示
查看>>
BZOJ 3589 动态树(子树操作,链查询)
查看>>
设计模式趣说
查看>>
转:电商那些年,我摸爬打滚出的高并发架构实战精髓
查看>>
说说API的防重放机制
查看>>
广播信道的数据链路层
查看>>
程序连接oracle数据库失败
查看>>
document.addEventListener理解
查看>>
从主机系统向虚拟机系统里面copy 文件
查看>>
java面向对象1
查看>>