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

udp客户端收发数据流程的更多相关文章

  1. udp服务端收发数据流程

    1.创建服务端的socket以便开始通讯.2.绑定ip以及端口号,这样客户端才能找到这个程序.3.因为本地网卡不止一个所以尽量不写死,一般用""空来表示所有本地网卡.4.接下来开始 ...

  2. Android笔记:Socket客户端收发数据

    client.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and ...

  3. Hadoop_08_客户端向HDFS读写(上传)数据流程

    1.HDFS的工作机制: HDFS集群分为两大角色:NameNode.DataNode (Secondary Namenode) NameNode负责管理整个文件系统的元数据 DataNode 负责管 ...

  4. 多线程socket UDP收发数据

    多线程socket收发数据 from threading import Thread from socket import * def sendData(): while True: sendInfo ...

  5. Hbase- Hbase客户端读写数据时的路由流程

    1.客户端先到zookeeper查找hbase:meta所在的RegionServer服务器 2.去hbase:meta表查找自己所要的数据所在的region server 3.去目标region s ...

  6. TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...

  7. android Camera 数据流程分析

    这篇文章主要针对其数据流程进行分析.Camera一般用于图像浏览.拍照和视频录制.这里先对图像浏览和拍照的数据流进行分析,后面再对视频电话部分进行分析. 1.针对HAL层对摄像头数据处理补充一下 Li ...

  8. CMDB处理数据流程

    客户端代码执行流程: 服务器端接收并处理数据流程:

  9. 【NodeJs】使用TCP套接字收发数据的简单实例

    因为TCP协议是流协议,在收发数据的时候会有粘包的问题.本例使用自定义的SPtcp封包协议对TCP数据再进行一次封装,解决了粘包问题. 注:其性能仍有待优化.优化方向:使用TCP自带的接收窗口缓存. ...

随机推荐

  1. web多语言url的设计

    因为项目要支持国际化,最近跟一个同事在讨论多语言版本下面url如何设计,假如我们需要支持en和cn的版本. 他倾向于支持如下的url格式,后续以格式1指代: /en/group/abc.html /c ...

  2. 监视锁——Java同步的基本思想

    翻译人员: 铁锚翻译时间: 2013年11月13日原文链接: Monitors – The Basic Idea of Java synchronization如果你上过操作系统课程,你就知道监视锁( ...

  3. 9.5、Libgdx加速度计

    (官网:www.libgdx.cn) 加速度计可以让设备通过三个坐标轴检测加速度.通过加速度可以检测设备的方向. 加速度的单位是米每秒的平方.如果一个坐标轴指向地心,加速度大概是-10米每秒的平方.如 ...

  4. Dynamics CRM OData 查询超过50条记录的数据(Retrieving More than 50 records using OData)

    在通过ODdata方式获取CRM数据时,默认查询出来的results只有50条数据,可以通过JSON返回的Object中的"_next"属性作为URL循环获取直到该属性为空 示例代 ...

  5. 用m4 macros创建文本文件

    用m4 macros创建文本文件   原文链接: http://ldp.linux.no/linuxfocus/ChineseGB/September1999/article111.html 补充阅读 ...

  6. hibernate 动态多数据库

    最近老师给了一个任务,需求是这样的 服务器A上有一张表,里面存放了若干个服务器的信息,表的字段包括: private int id; private String serverName; privat ...

  7. C++多重继承与虚拟继承

    本文只是粗浅讨论一下C++中的多重继承和虚拟继承. 多重继承中的构造函数和析构函数调用次序 我们先来看一下简单的例子: #include <iostream> using namespac ...

  8. Palette状态栏颜色提取,写的不错就分享了

    Palette 说Palette之前先说下前面提到的Pager.ViewPager是什么大家应该都是知道的了,一般ViewPager.xxxTabStrip.Fragment三个好基友是一起出现的.这 ...

  9. UTL_HTTP Call a Web Service and Pass Parameters as Part of the URL

    SET DEFINE OFF SET SERVEROUTPUT ON DECLARE req UTL_HTTP.REQ; resp UTL_HTTP.RESP; value VARCHAR2(3276 ...

  10. 一个类搞定UIScrollView那些事儿

    前言 UIScrollView可以说是我们在日常编程中使用频率最多.扩展性最好的一个类,根据不同的需求和设计,我们都能玩出花来,当然有一些需求是大部分应用通用的,今天就聊一下以下需求,在一个categ ...