udp客户端收发数据流程

简介: 1、创建客户端socket开始进行通讯。2、这时服务端应该先启动,并在知道服务端的ip以及端口号的时候才能进行通讯。3、本地不需要绑定ip以及端口号,在用此套接字对象发送消息的时候会自动分配活动端口(1024-65535) 每次重启程序可能每次都不一样。
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()

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

目录
相关文章
|
5月前
|
Python
143 python网络编程 - UDP发送、接收数据
143 python网络编程 - UDP发送、接收数据
39 0
|
4月前
|
网络协议 Java API
基于UDP/TCP实现客户端服务器的网络通信程序
基于UDP/TCP实现客户端服务器的网络通信程序
|
3月前
|
网络协议
网络编程-UDP协议(发送数据和接收数据)
网络编程-UDP协议(发送数据和接收数据)
|
1月前
|
网络协议 Java
Java——UDP数据报
Java——UDP数据报
12 0
|
1月前
|
网络协议 数据格式
|
6月前
|
存储 网络协议 Java
UDP,TCP特点对比,DatagramPacket,SocketAddress的使用 ,UDP的API,如何编写一个简单的回显服务器及客户端,详细解释(本文内容较难,建议多次阅读,自己敲一敲)
UDP,TCP特点对比,DatagramPacket,SocketAddress的使用 ,UDP的API,如何编写一个简单的回显服务器及客户端,详细解释(本文内容较难,建议多次阅读,自己敲一敲)
|
2月前
|
自然语言处理 Java 编译器
【JavaEE初阶】 UDP服务器与客户端的搭建
【JavaEE初阶】 UDP服务器与客户端的搭建
|
2月前
|
安全 Java Go
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
60 0
|
8月前
|
Python
【从零学习python 】73. UDP网络程序-发送数据
【从零学习python 】73. UDP网络程序-发送数据
45 0
|
4月前
|
Cloud Native Go
线上 udp 客户端请求服务端客户端句柄泄漏问题
线上 udp 客户端请求服务端客户端句柄泄漏问题