网络编程之UDP通信
一、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.6 网络编程之 UDP通信
************************************************** * 本文由小鸟飞飞整理发表 <samboy@sohu.com> * * 首发网站:蓝丽 ...
- Python中的网络编程之UDP
Python中的网络编程之UDP 文章目录 Python中的网络编程之UDP 一.Socket编程 `1.什么是客户端/服务器架构`? **`2.套接字:通信端点`** 3.套接字地址:主机-端口对 ...
- 萌新解--Java网络编程之UDP
Java网络编程之UDP UDP协议为无连接的通信协议,在传数据前发送端与接收端不会先建立连接,也就是你发我就收但不一定会收到哦,以我们自身为发送端,我们不会事先让接收方知道我要给接收方发数据啦.就像 ...
- 2-3:套接字(Socket)编程之UDP通信,sockaddr,sockaddr_in,recvfrom,sendto
文章目录 一:回顾 二:彻底了解套接字和struct socket结构 (1)一切皆文件-文件描述符-套接字描述符 (2)struct socket结构 A:struct socket结构体作用 B: ...
- 嵌入式学习之QT学习---8 QT网络编程之TCP通信
前言: Qt网络模块提供了用于编写TCP/IP客户端和服务器端程序的各种类,如用于TCP通信的QTcpSocket和QTcpServer,用于UDP通信的QUdpSocket,还有用于实现HTTP.F ...
- Java网络编程之UDP和TCP套接字
文章目录 一. 网络编程概述 二. UDP网络编程 1. UDP套接字 2. UDP客户端回显服务器程序 2.1 UDP回显服务器 2.2 UDP客户端 2.3 UDP实现查词典的服务器 三. TCP ...
- java udp 同一个端口实现收发_Java网络编程之UDP协议
伙伴们注意了! 小编在这里给大家送上关注福利: 搜索微信公众号"速学Java"关注即可领取小编精心准备的资料一份! 今天我们来聊聊 网络编程这部分的内容 网络编程 1)计算机网络 ...
- java网络编程udp_Java网络编程之UDP
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议, ...
- Linux C高级编程——网络编程之UDP(4)
Linux网络编程--UDP 宗旨:技术的学习是有限的,分享的精神是无限的. 下面分析一帧基于UDP的TFTP协议帧. 以太网首部 0000: 00 05 5d 67 d0 b1 00 05 5d 6 ...
最新文章
- 在Ubuntu 14.04 64bit上安装epub阅读器Sigil 0.8.2
- C语言网络编程:TCP编程模型
- FFmpeg中libswscale库简介及测试代码
- 365个机器学习概念,“耐撕”的AI日历限量预售 | 新年礼物嗷~
- jquery 子元素过滤器 Child Filters
- SyntaxError: Non-UTF-8 code starting with ‘\xe9‘ in file D:/Users/wxk/PycharmProjects/xzykdx/user/12
- 从头到尾再讲一遍ThreadLocal
- 怎么清空topic数据_20.Roscpp/Rospy:Topic_demo
- 使用Nacos配置中心云端化本地application.properties
- 网络对抗技术——密码破解技术
- Mac 上删除用户或群组教程
- 自动驾驶_高精地图模型构成
- 清华大学829考研 初试436经验谈
- 单片机原理及应用 张鑫_单片机原理及应用 张鑫 课后习题答案 电子工业出版社 单片机原理及应用 张鑫 课后习题答案 电子工业出版社.doc...
- 插件学习笔记:搜索引擎ElasticSearch
- 开发中的多线程ID检测工具(ESET_VC52_MCID)
- Java面试单点登录_单点登录面试题
- 共享汽车违章难处理 车企用定位模块来解决
- 面试计算机应用技术自我介绍,计算机应用专业面试的自我介绍
- Maven学习(一)---Maven简介