首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面试:怎么 UDP 实现 TCP

其实面试官主要是想让我说出 UDP 和 TCP 的原理上的区别,怎么给 UDP 加些功能实现 TCP。...比如面向连接,就是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,这样的数据来保证所谓的面向连接的特性。...知道了 TCP 的是三次握手来建立连接,那我们是否可以让 UDP 也发三个包来模拟 TCP 建立连接?可以是可以,但是如果只是建立,而不是面向连接,其实意义不大。...TCP 干的事情可真多! 而 UDP 则不是有状态的服务,我只管发,其他的就交给接收端吧,有点任性是吧? 如何让 UDP 实现 TCP 功能?...针对于算法怎么实现的,这里就不展开讲述了。(图片来源网络) 至此,我大白话的方式讲解了 UDP 和 TCP 的区别,以及 UDP 缺什么功能,需要怎么去弥补才能实现 TCP 的功能。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 实现梯度下降

    来自作者投稿  作者:覃佑桦 www.baeldung.com/java-gradient-descent 1.引言 文本会学习梯度下降算法。我们将分步对算法实现过程进行说明并用Java实现。...接下来我们将采用回溯实现梯度下降。 4.分步说明 梯度下降需要一个函数和一个起点作为输入。让我们定义并绘制一个函数: ? ? 可以从任何期望的点开始。让我们从 x=1 开始: ?...这就表明算法已超过了局部最小值,因此较小的步长后退: ? 随后,只要当前y 大于前一次 y,就会减小步长并取反。迭代会一直进行直到满足所需的精度。...5.Java实现 有几种方法能够实现梯度下降。这里没有采用计算函数的导数来确定斜率的方向,因此我们的实现也适用于不可微函数。...还用Java对算法进行了实现,完整源代码可以从 GitHub 下载。

    1.5K10

    Java实现Redis限流

    Java实现Redis限流 1、概述 2、zset有序集合相关命令与限流 3、zset有序结合与限流 1、概述   限流的含义是在单位时间内确保发往某个模块的请求数量小于某个数值,比如在实现秒杀功能时...3、zset有序结合与限流 有关redis启动的知识不做过多介绍了,这里我docker创建的redis容器。...本例实现100秒内只能处理3个请求 LimitRequest.java package com.baizhi.request; import redis.clients.jedis.Jedis;...currentTime作为值,以保证值的唯一性,同时currentTime作为有序集合里元素的score值。   ...其中,zcard命令统计有序集合内键为requestType的个数,如果通过if语句发现当前个数还没有达到限流的上限,则允许该请求方法,否则不允许。

    95410

    python实现TCP协议传输功能(服务端代码)

    与客户端代码不同(客户端代码请看我的上一篇博客),服务端需要绑定端口号,设置监听服务,多了两个特殊的步骤,需要两行新的代码实现 准备:windows作为客户端,windows上安装网络调试助手,linux...import socket if __name__ == '__main__': # 先建立服务端的套接字对象,第一个参数同样是ipv4协议,第二个参数是TCP协议 tcp_server_socket...(("", 9090)) # 设置监听服务,等待客户端向服务端发送信息 # 100:最大等待建立连接的个数 tcp_server_socket.listen(100) #...tcp_server_socket.close() 此时运行起来该程序,程序会停止在accept方法这,等待客户端发送请求,此时打开网络调试助手: ?...,如果还有客户端发来新的消息,那么tcp_server_socket又会产生一个新的套接字对象去接管新的任务。

    83710

    java开发TCPIP协议:实现TCP单向裸数据发送

    因此要想从零实现工业级鲁棒性的TCP数据传输协议几乎不可能,因此我们在实现过程中必须尽可能简化,就像老子说的天下难事必作于易,天下大事必作于细,因此我们在实现这么复杂的协议系统时必须从最简单的情况入手,...本节我们先实现一次单向数据传输,我们将开放一个基于TCP协议的客户端,使用TCP协议向服务器发送裸数据,它的基本结构如下图: ?...通常情况下我们可以在手机上下载一个最简单的tcp服务器,我的是iPhone,在AppStore里tcp server为关键字就可以搜索到下面应用程序,设置好端口后就可以变成一个最简单的tcp服务器:...只要你能在另一台设备上运行可以接收TCP数据包的服务器程序都可以,我们的任务是在我们自己对TCP协议的实现基础上开发客户端,与它连接后,向它发送一个字符,然后端口连接,我们看看代码的实现。...协议层的应用都必须继承该接口,我们看看客户端的实现: package Application; import java.net.InetAddress; import utils.ITCPHandler

    1.1K20

    【Go 语言社区】Go实现的简易TCP通信框架--转

    一般的实现就是调用net.Listen(“tcp4”, address)得到一个net.Listener,然后无限循环调用net.Listener.Accept,之后就可以得到一个net.Conn,可以调用...因为TCP的双工特性,所以可以针对一个net.Conn可以专门启动一个goroutine去无限循环接收对端发来的数据,然后解包等。...想发送数据到对端,可以AsyncSend方法,该方法会把要发送的数据排队到发送通道。...还有就是,可能有些例情景下,会发送比较大的数据包,比如64K大小,或者32K大小的数据等,未了避免反复申请内存,特此为Session增加了SetSendCallback方法。...请求包路由 基于event-based的实现,总是少不了要做的事情就是把一个请求包转发到对应的处理函数中。但是具体怎么转,怎么做是取决于具体的例情景和实现的。

    1.3K100

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券