首页 > 其他分享 >(2)基于UDP协议的简单套接字

(2)基于UDP协议的简单套接字

时间:2023-06-23 17:34:55浏览次数:23  
标签:基于 socket UDP server msg 接字 data 服务端

基于UDP协议的简单套接字

UDP协议 -----> 数据报协议

【一】简单版1.0

【1】TCP协议所遇到的空数据问题是否存在?

TCP协议是水流式协议:传入的数据不能为空,因为水是一直流的,在传输过程中不会对数据进行操作

UDP协议是数据报协议:传入的数据可为空,在传输过程中UDP会对数据进行内部的拼接和处理

  • 客户端
# -*-coding: Utf-8 -*-
# @File : 客户端 .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/6/22
import socket

# 建立socket对象
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:
    # 向服务端发送消息
    msg = input('msg:>>>>').strip()
    server.sendto(f'{msg}'.encode('utf8'), ('127.0.0.1', 8082))

    # 接受服务器返回的消息
    data_msg, server_addr = server.recvfrom(1024)
    msg_data = data_msg.decode("utf8")
    IP = server_addr[0]
    PORT = server_addr[1]
    print(f'服务端返回拿到的消息:>>>>{data_msg}')
    print(f'服务端返回拿到的IP:>>>>{IP}')
    print(f'服务端返回拿到的端口:>>>>{PORT}')

# 关闭链接
server.close()
  • 服务端
# -*-coding: Utf-8 -*-
# @File : 服务端 .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/6/22
import socket

# 数据报协议  ------>  UDP 协议
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 建立链接  ip + 端口
server.bind(('127.0.0.1', 8082))

# 接收到服务端传进来的消息
# 接受收到的 ip 和 端口 对于UDP 来说是非常重要的 因为UDP协议没有建立链接操作
# 返回信息就需要用到拿到的ip和端口
msg_data, clint_addr = server.recvfrom(1024)
msg_data = msg_data.decode("utf8")
IP = clint_addr[0]
PORT = clint_addr[1]
print(f'客户端提供的拿到的消息:>>>>{msg_data}')
print(f'客户端提供的拿到的IP:>>>>{IP}')
print(f'客户端提供的拿到的端口:>>>>{PORT}')

while True:
    # 建立链接,返回消息内容
    return_msg = msg_data.upper().encode('utf-8')
    server.sendto(return_msg, clint_addr)

# 关闭服务
server.close()

【2】TCP协议所遇到的客户端断开链接是否会影响到服务端?

TCP协议是水流式协议:在建立链接过程中,服务端和客户端的链接是一直存在的,断开一方都会对另一方造成影响

UDP协议是数据报协议:在建立链接过程中,是通过解析对方数据中的ip和端口,再向另一方返回数据的,所以一方发生问题并不会影响到另一方

【二】应用

【1】聊天室的创建

  • 客户端输入消息
    • 将数据上传到服务器
  • 服务器解析收到的数据,根据接收到的数据进行返回数据

标签:基于,socket,UDP,server,msg,接字,data,服务端
From: https://www.cnblogs.com/dream-ze/p/17499407.html

相关文章

  • 基于Python+QT5+Dialog开发的舆情可视化分析系统
    基于Python+QT5开发的舆情可视化分析系统项目介绍......
  • (3)基于 TCP 协议实现服务端执行代码将结果反馈给客户端
    基于TCP协议实现服务端执行代码将结果反馈给客户端TCP协议是流式协议:在数据传输过程中大量数据的传入会造成数据的丢失和不完整解决数据传输过程中的问题:自定义协议应用:基于网络上传和下载文件socketserver:基于模块实现并发服务端满足的条件一直对外提供服务并......
  • (4)socket套接字使用模版
    socket套接字使用模版【一】客户端#-*-coding:Utf-8-*-#@File:客户端.py#author:Chimengmeng#blog_url:https://www.cnblogs.com/dream-ze/#Time:2023/6/22importjsonfromsocketimport*#解指定数据长度importstruct#创建socket对象client=s......
  • 文本识别分类系统python,基于深度学习的CNN卷积神经网络算法
    一、介绍文本分类系统,使用Python作为主要开发语言,通过TensorFlow搭建CNN卷积神经网络对十余种不同种类的文本数据集进行训练,最后得到一个h5格式的本地模型文件,然后采用Django开发网页界面,实现用户在界面中输入一段文字,识别其所属的文本种类。在我们的日常生活和工作中,文本数据无......
  • Python基于Socket编写TcpServer通信基本框架
    如下主要是实现单客户端连接通信,如下为Socket模块的常用属性和方法介绍。如要实现多客户端连接,请使用threading模块的多线程技术实现。属性:•socket.AF_INET:IPv4地址族。•socket.AF_INET6:IPv6地址族。•socket.SOCK_STREAM:TCP协议类型。•socket.SOCK_DGRAM:UDP协议类......
  • 服务器UDP协议的优缺点,为什么要封UDP?
    网络业务高速发展,不同业务对于服务器使用的网络协议要求不同,有些业务需要使用UDP协议,有些则用不上,TCP协议也是一样,UDP和TCP都是属于一种网络协议。并且在市面上应用都是比较广泛的。那么UDP相对于TCP来说究竟有哪些优缺点呢?UDP的优点UDP要比TCP更快,UDP不容易被攻击,因为无需太多的机......
  • NLP实战必读-基于Python的文本分析实战
    本书介绍   从新闻和演讲到社交媒体上的非正式聊天,自然语言是最丰富、利用最少的数据来源之一。它不仅源源不断地供给,总是在环境中变化和适应;它还包含传统数据源无法传达的信息。解锁自然语言的关键是通过文本分析的创造性应用。本书展示了数据科学家用应用机器学习模型构建语......
  • 基于知识图谱的智能对话系统必读经典论文整理分享
        人机对话系统作为人工智能的一项基础应用,越来越受到学术界和工业界的重视.人机对话系统主要分为两类:面向任务的人机对话系统可以完成基础的重复工作,节省人力成本;非任务型人机对话系统能够提供更加智能,更加拟人的对话体验.非任务型人机对话系统主要采用序列到序列的模......
  • 基于SpringBoot实现SSMP整合的案例源码
    案例介绍:基于SpringBoot实现SSMP整合的案例之一(案例分析与模块创建)-掘金(juejin.cn)源码下载:点我......
  • 基于DCT变换和ZigZag的图像压缩算法matlab性能仿真,仿真输出不同压缩率与图像质量的关
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要图像压缩是一种广泛应用的技术,它能够在不影响图像质量的前提下,减少图像所占用的存储空间。本文将介绍一种基于离散余弦变换(DiscreteCosineTransform,简称DCT)和ZigZag扫描的图像压缩算法,并探讨不同压缩率与图像质......