前情提要

    一: tcp 和udp 的区别

      

#  tcp
# # 面向连接的 可靠的 全双工的 流式传输
# # 面向连接 :同一时刻只能和一个客户端通信
# # 三次握手、四次挥手
# # 可靠的 :数据不丢失、慢
# # 全双工 :能够双向通信
# # 流式传输 :粘包 无边界
# udp
# 无连接的 面向数据包 不可靠的 快速的
# 无连接的 :不需要accept/connect 也没有握手
# 面向数据包的 :不会粘包
# 不可靠的 :没有自动回复的机制
# 快速的 :没有那些复杂的计算、保证数据传输的机制

    二:udp 的简单示例

      1:服务端

import socket
sk=socket.socket(type=socket.SOCK_DGRAM) #默认是tcp 协议,需要更改type 类型,
sk.bind(('127.0.0.1',9000)) #建立服务
msg ,addr =sk.recvfrom(1024) #每次大小
print(msg)
print(addr)
sk.sendto(b'world',addr) #内容,地址
sk.close()

  

      2:客户端

import socket
sk=socket.socket(type=socket.SOCK_DGRAM)
sk.sendto(b'hello',('127.0.01',9000))
msg,addr =sk.recvfrom(1024)
print(msg)
sk.close()

    三:udp实现多人聊天

      1:服务端

import socket
sk =socket.socket(type=socket.SOCK_DGRAM)
sk.bind(('127.0.0.1',9000)) #建立服务
while 1:
msg ,addr =sk.recvfrom(1024)
print(msg)
connect =input('>>>>').encode()
sk.sendto(connect,addr)

      2:服务端

import socket
sk =socket.socket(type=socket.SOCK_DGRAM)
while 1:
connect =input('>>>>>').encode()
sk.sendto(connect,('127.0.0.1',9000))
msg ,addr =sk.recvfrom(1024)
print(msg)

    四:tcp 实现多并发解决聊天问题(并不是群发只是逐个解决)

      1:服务端

import socketserver #soceket的进阶类
class Myserver(socketserver.BaseRequestHandler): #固定格式
def handle(self):
conn =self.request
while 1:
conttent =input('>>>>>>>>>>>').encode()
conn.send(conttent) server =socketserver.ThreadingTCPServer(('127.0.0.1',9000),Myserver)
server.serve_forever()

       2客户端:

import socket
sk =socket.socket()
sk.connect(('127.0.0.1',9000))
while 1:
ret =sk.recv(1024)
print(ret)
sk.close()

 小作业:

# 1.完成一个在网络上对文件的传输(进阶需求 如果这个文件非常大 2个G)
# 1)完成文件的下载
# 2)把用户认证这个功能加上
# 必须先认证 再进行上传下载
# 3)文件的一致性校验
# 2.练习一些udp协议的操作
# 3.使用socketserver实现一个并发的基于tcp协议的多人聊天

上面作业等讲完整理

总结day25 ---- udp 初识, 和tcp 进阶的更多相关文章

  1. 在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章?(QQ 为什么采用 UDP 协议,而不采用 TCP 协议实现?)

    为了解决这题,可以具体看看下面这个讨论. 解灵运工程师 185 人赞同 某次架构师大会上那个58同城做即时通信的人说:原因是因为当时没有epoll这种可以支持成千上万tcp并发连接的技术,所以他们使用 ...

  2. 为什么 UDP 有时比 TCP 更有优势

    随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单.传输快的优势,在越来越多场景下取代了TCP,如网页浏览.流媒体.实时游戏.物联网. 1.网速的提升给UDP稳定性提供可靠网络保障 CD ...

  3. 初识Modbus TCP/IP-------------C#编写Modbus TCP客户端程序(一)

    转自:http://blog.csdn.net/thebestleo/article/details/52269999 首先我要说明一下,本人新手一枚,本文仅为同样热爱学习的同学提供参考,有不 对的地 ...

  4. Java基础之UDP协议和TCP协议简介及简单案例的实现

    写在前面的废话:马上要找工作了,做了一年的.net ,到要找工作了发现没几个大公司招聘.net工程师,真是坑爹呀.哎,java就java吧,咱从头开始学呗,啥也不说了,玩命撸吧,我真可怜啊. 摘要: ...

  5. 为什么UDP有时比TCP更有优势?

    随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单.传输快的优势,在越来越多场景下取代了TCP.1.网速的提升给UDP稳定性提供可靠网络保障 CDN服务商Akamai(NASDAQ: A ...

  6. UDP 区别于 TCP 的特点

    TCP 我们了解得多了,所以今天我们站在 UDP 的角度,探讨一下 UDP 区别于 TCP 的特点. 1. 面向无连接 UDP 比 TCP 简单得多,不需要“三次握手”来建立连接,直接把内容发送出去. ...

  7. 计算机网络之传输层(传输层提供的服务及功能概述、端口、套接字--Socket、无连接UDP和面向连接TCP服务)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105451022 学习课程:<2019王道考研计算机网络> 学习目的 ...

  8. TCP ,UDP概念和TCP三次握手连接 的知识点总结

    OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务. TCP 中常说的握手指的是:连接的定义和连接的建立 ...

  9. UDP模式与TCP模式的区别

    1.TCP有连接状态,而UDP没有. 2.TCP应用层使用无需考虑包的大小及发送情况,而UDP需要. 3.TCP中IP包大小的决定者是Socket,而UDP为应用层.

随机推荐

  1. NInject在函数中使用

    问题,今天我在使用Ajax的时候,发现请求到后台没法得到对象. 原来的写法是这样的: public class Baoming : IHttpHandler { [Inject] public IBL ...

  2. Linux addr2line命令

    一.简介 Addr2line (它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名.函数名和源代码行数的工具.这种功能对于将跟踪地址转换成更有意义的内容来 ...

  3. Zookeeper 源码(四)Zookeeper 服务端源码

    Zookeeper 源码(四)Zookeeper 服务端源码 Zookeeper 服务端的启动入口为 QuorumPeerMain public static void main(String[] a ...

  4. 玩转Sketch,不容错过的5大实用插件推荐

    在之前的文章中,笔者为大家介绍了Sketch 的入门教程.实用技巧和资源集锦,相信大家对Sketch已经有了初步的了解和认识.除了基础的矢量设计功能以外,插件更是让Sketch保持强大的独门秘籍.Sk ...

  5. jdbc和Java中的日期问题

    JDBC中的日期Java.sql.Date 是继承自Java中的Java.util.Date,在实现插入的时候可以 将Java.util.Date类型的时间转换成毫秒数,date.getTime(), ...

  6. ssh 无密码登录要使用公钥与私钥

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(192.168.1.155),B(192.168.1.181).现想 ...

  7. 如何快速获取官网帮助信息 (附 11g pdf 文档)

    http://docs.oracle.com/en/ 11g Release 2 (11.2) 搜索时指定网站 site:docs.oracle.com create table site:docs. ...

  8. Leader/Follower多线程网络模型介绍

    之前分享过<轻量级 web server Tornado代码分析>,介绍了目前我们采用nginx + tornado的方式搭建升级.配管.数据中心等各类服务组建客户端迭代体系.最近注意到, ...

  9. 组队作业_One

    Part 1.前言 结对项目作业 结对同学高裕翔的博客 本博文pdf版本 Part 2.PSP表 PSP3.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...

  10. Bootstrap导航栏

    导航栏: <div id="menu-nav" class="navbar navbar-default navbar-inverse navbar-fixed-t ...