UDP

概念和介绍

UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。

UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并 不能保证它们能到达目的地。

UDP是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整 的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否 到达目的地,到达目的地的时间、次序以及内容的正确性都是不能被保证的

UDP适用于语音广播、视频会议等其他的数据业务

  UDP通信过程:

UDP通信比较简单

先写一个UDP服务器,一般步骤如下:

1、首先是要创建一个socket套接字:socket()

2、服务器一般是需要一个固定的IP地址和固定端口号,服务器就要绑定这个IP地址和端口号:bind()

3、只有服务器和客户端绑定相同的IP地址,服务器和客户端才可以互相接收数据和发送数据,常理来想,服务器是一只被开启的,也是一直接受数据,所以在接受数据的过程中,我们需要无限循环:recv()

4、如果我们要发送数据给客户端,客户端也需要绑定上面的地址,然后需要调用相应的函数sendto()

import socket

# UDP
# 创建一个服务器socket套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 服务器的IP地址和端口号
address = ("127.0.0.1", 9999)
# 服务器绑定地址
server_socket.bind(address) data = server_socket.recv(2048).decode("UTF-8")
# 数据处理,这里打印出来端
print("服务器接受的数据:", data) # 服务器接受的数据:我是一个客户端

    若想服务器接受数据,就要写UDP客户端程序了

import socket

# 客户端需要创建一个套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 客户端需要连接服务器,必须先知道服务器的IP地址和端口号
address = ("127.0.0.1", 9999) # 连接服务器
client_socket.connect(address) # 这个数据是将要发送的数据
data = "我是一个客户端"
client_socket.sendto(data.encode("UTF-8"), address)

UDP总结

1. udp是TCP/IP协议族中的一种协议能够完成不同机器上的程序间的数据通 信

2. udp服务器、客户端

udp的服务器和客户端的区分:往往是通过请求服务和提供服务来进行区分

请求服务的一方称为:客户端

提供服务的一方称为:服务器

3. udp绑定问题

  一般情况下,服务器端,需要绑定端口,目的是为了让其他的客户端能够正确发送 到此进程

  客户端,一般不需要绑定,而是让操作系统随机分配,这样就不会因为需要绑定的 端口被占用而导致程序无法运行的情

python高级编程——网络编程(二)的更多相关文章

  1. python高级之网络编程

    python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...

  2. 第六篇:python高级之网络编程

    python高级之网络编程   python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及 ...

  3. Python之路 - 网络编程之粘包

    Python之路 - 网络编程之粘包 粘包

  4. Python之路 - 网络编程初识

    Python之路 - 网络编程初识 前言

  5. Python中级 —— 04网络编程

    网络编程 网络编程对所有开发语言都是一样的,Python也不例外.用Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信. TCP编程 TCP建立可靠连 ...

  6. python语法基础-网络编程-TCP协议和UDP协议

    ###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...

  7. python高级编程——网络编程(一)

    计算机网络基础 概念:计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的通信.而网络编程就是开发计算机网络应用程序 计算机的通信协议 概念:计 ...

  8. python之Socket网络编程

    什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系.在数学上,网络是一种图,一般认为专指加权图.网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型.在 ...

  9. python 之socket 网络编程

    socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...

  10. 周末班:Python基础之网络编程

    一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好.但是如果这两个程序之间想要传递一个数据, ...

随机推荐

  1. HBuilder创建app

    一.app登录注册实现 1.首先进行布局,mhead,mbody 在app index.html内创建一个 a链接通过mui.openWindow跳到登录页面 <a class="mu ...

  2. django之三剑客、静态文件配置、请求响应对象、数据库操作

    三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...

  3. zz深度学习论文合集大全

        Pull requestsIssues Marketplace Explore             Learn Git and GitHub without any code! Using ...

  4. 20191003 「HZOJ NOIP2019 Round #8」20191003模拟

    综述 试题为常州集训2019SCDay2 得分\(100+30(0)+28\) 时之终结 问题描述 HZOJ1310 题解 构造题. 发现部分分有一档是 \(Y\) 是 \(2^x\) ,于是自然想到 ...

  5. luoguP4008 [NOI2003]文本编辑器

    题意 splay维护即可 code: #include<bits/stdc++.h> using namespace std; const int maxn=2000010; int T, ...

  6. [C/C++]大小端字节序转换程序

    计算机数据存储有两种字节优先顺序:高位字节优先(称为大端模式)和低位字节优先(称为小端模式). 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿 ...

  7. gcc编译的时候报错 error trying to exec 'cc1plus': execvp 解决方法

    sudo apt install --reinstall build-essential -y

  8. Visual Studio 调试系列11 远程调试

    系列目录     [已更新最新开发文章,点击查看详细] 你可以调试已部署在另一台计算机的 Visual Studio 应用程序. 要进行此操作,可使用 Visual Studio 远程调试器. 01 ...

  9. 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (三)

    本文属于图神经网络的系列文章,文章目录如下: 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一) 从图(Graph)到图卷积(Graph Convolutio ...

  10. logstash output时区差8个小时

    logstash版本6.3.2,解决方式如下,不需要修改源码: input { redis { host => "127.0.0.1" port => " p ...