一、UDP简介

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768 [1] 是UDP的正式规范。UDP在IP报文的协议号是17。

二、socket

1.简介
       UDP要想进行通信,那么就必须要借助socket。什么是socket呢?socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的。socket通信模型如下图。
2.socket的创建
2.1 socket创建的流程:
(1)创建套接字
(2)使用套接字收/发数据
(3)关闭套接字

2.2 代码演示

import socket
# 创建套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# ...这里是使用socket创建的功能(省略)...
# 关闭套接字
s.close()

AF_INET:用于 Internet 进程间通信
SOCK_DGRAM(数据报套接字):主要用于 UDP 协议

三、udp网络程序(发送、接收数据)

1.udp的网络程序流程
(1)创建客户端套接字
(2)发送/接收数据
(3)关闭套接字

2. 代码演示

#coding=utf-8
import socket
def main():
# 1.创建一个udp套接字
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DCRAM)
# 2.绑定本地信息
udp_socket.bind(("",7890))
while True:# 3.从键盘获取数据send_data=input(“请输入要发送的数据:")# 4.可以使用套接字收发数据udp_socket.sendto(send_data.encode("gbk"),("192.168.80.1",8080))
# 5.关闭套接字
udp_socket.close()if_nane_=="__main_":main()

3.运行截图

四.udp简单聊天器

1.程序代码

import socketdef send_msg(udp_socket):"""发送信息"""#获取要发送的内容dest_ip = input("请输入对方的ip:")dest_port = int(input("请输入对方的端口port:"))send_data = input("请输入要发送的信息:")udp_socket.sendto(send_data.encode("utf-8"),(dest_ip,dest_port))def recv_msg(udp_socket):"""接收数据"""recv_data = udp_socket.recvfrom(1024)print("%s : %s" % (str(recv_data[1],recv_data[0].decode("utf-8")))def main():# 创键套接字udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)# 绑定信息udp_socket.bind(("",7788))# 循环来进行处理事情while True:print("---聊天器---")print("1.发送信息")print("2.接收信息")print("退出系统")op = input("请输入功能")if op=="1":# 发送信息send_msg(udp_socket)elif op=="2":# 接收信息并显示recv_msg(udp_socket)elif op=="0":# 退出breakelse:print("您的输入有误,请重新输入....")if __name__=="__main__":main()

2.运行截图


3.网络调试助手

windows版:
链接:https://pan.baidu.com/s/14l1oEjcYeELd-Bt_JI_bBQ
提取码:02e4

Ubuntu版:
链接:https://pan.baidu.com/s/1_YZy_a8S06Hj5OAQto8wlQ
提取码:rtto

网络编程之UDP通信相关推荐

  1. 1.6 网络编程之 UDP通信

    ************************************************** * 本文由小鸟飞飞整理发表 <samboy@sohu.com> * * 首发网站:蓝丽 ...

  2. Python中的网络编程之UDP

    Python中的网络编程之UDP 文章目录 Python中的网络编程之UDP 一.Socket编程 `1.什么是客户端/服务器架构`? **`2.套接字:通信端点`** 3.套接字地址:主机-端口对 ...

  3. 萌新解--Java网络编程之UDP

    Java网络编程之UDP UDP协议为无连接的通信协议,在传数据前发送端与接收端不会先建立连接,也就是你发我就收但不一定会收到哦,以我们自身为发送端,我们不会事先让接收方知道我要给接收方发数据啦.就像 ...

  4. 2-3:套接字(Socket)编程之UDP通信,sockaddr,sockaddr_in,recvfrom,sendto

    文章目录 一:回顾 二:彻底了解套接字和struct socket结构 (1)一切皆文件-文件描述符-套接字描述符 (2)struct socket结构 A:struct socket结构体作用 B: ...

  5. 嵌入式学习之QT学习---8 QT网络编程之TCP通信

    前言: Qt网络模块提供了用于编写TCP/IP客户端和服务器端程序的各种类,如用于TCP通信的QTcpSocket和QTcpServer,用于UDP通信的QUdpSocket,还有用于实现HTTP.F ...

  6. Java网络编程之UDP和TCP套接字

    文章目录 一. 网络编程概述 二. UDP网络编程 1. UDP套接字 2. UDP客户端回显服务器程序 2.1 UDP回显服务器 2.2 UDP客户端 2.3 UDP实现查词典的服务器 三. TCP ...

  7. java udp 同一个端口实现收发_Java网络编程之UDP协议

    伙伴们注意了! 小编在这里给大家送上关注福利: 搜索微信公众号"速学Java"关注即可领取小编精心准备的资料一份! 今天我们来聊聊 网络编程这部分的内容 网络编程 1)计算机网络 ...

  8. java网络编程udp_Java网络编程之UDP

    UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议, ...

  9. Linux C高级编程——网络编程之UDP(4)

    Linux网络编程--UDP 宗旨:技术的学习是有限的,分享的精神是无限的. 下面分析一帧基于UDP的TFTP协议帧. 以太网首部 0000: 00 05 5d 67 d0 b1 00 05 5d 6 ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装epub阅读器Sigil 0.8.2
  2. C语言网络编程:TCP编程模型
  3. FFmpeg中libswscale库简介及测试代码
  4. 365个机器学习概念,“耐撕”的AI日历限量预售 | 新年礼物嗷~
  5. jquery 子元素过滤器 Child Filters
  6. SyntaxError: Non-UTF-8 code starting with ‘\xe9‘ in file D:/Users/wxk/PycharmProjects/xzykdx/user/12
  7. 从头到尾再讲一遍ThreadLocal
  8. 怎么清空topic数据_20.Roscpp/Rospy:Topic_demo
  9. 使用Nacos配置中心云端化本地application.properties
  10. 网络对抗技术——密码破解技术
  11. Mac 上删除用户或群组教程
  12. 自动驾驶_高精地图模型构成
  13. 清华大学829考研 初试436经验谈
  14. 单片机原理及应用 张鑫_单片机原理及应用 张鑫 课后习题答案 电子工业出版社 单片机原理及应用 张鑫 课后习题答案 电子工业出版社.doc...
  15. 插件学习笔记:搜索引擎ElasticSearch
  16. 开发中的多线程ID检测工具(ESET_VC52_MCID)
  17. Java面试单点登录_单点登录面试题
  18. 共享汽车违章难处理 车企用定位模块来解决
  19. 面试计算机应用技术自我介绍,计算机应用专业面试的自我介绍
  20. Maven学习(一)---Maven简介

热门文章

  1. 博士生的女朋友有话要说
  2. 服务器开发27:log4c充当服务器跨平台日志库(cmake跨平台编译,配置介绍及代码封装)
  3. 致敬通用计算机先驱 ENIAC诞生75周年
  4. 曝光骗子举报投诉平台源码
  5. MFC窗口及组件大小设置
  6. MyBatis-Plus 从入门到精通,这一篇就够了【推荐收藏】
  7. fastTime格式化时间
  8. C# EventHandler 参数传递
  9. css 实现虚线效果的3种方式详解
  10. 中专学的计算机专业全名,中专是什么学历 有哪些专业可以选