• 【JAVA SE基础篇】65.UDP TCP


    1.UDP编程

      1.分析

    使用基于UDP协议的Socket网络编程实现,不需要利用IO流实现数据的传输

    每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中

    数据包在网络中去寻找他的目的地。

    DatagramSocket:用于发送或接受数据包的套接字

    DatagramPacket:数据包

      2.基本步骤

    发送端

    1.使用DatagramScoket,指定端口 创建发送端

    2.准备数据,转成字节数组

    3.封装成DatagramPacket包裹,需要指定目的地(ip+端口)

    4.发送包裹,send(DatagramPacket p)

    5.释放资源

    接受端

    1.使用DatagramScoket,指定端口 创建接受端

    2.准备容器,封装成DatagramPacket包裹

    3.阻塞式接受包裹,receive(DatagramPacket p)

    4.分析数据getData(),getLength()

    5.释放资源

    2.TCP编程

      1.分许

    使用基于TCP协议的Socket网络编程实现,TCP协议基于请求-响应模式

    在网络通讯中,第一次主动发起的通讯的程序被称作客户端(client)程序

    第一次通讯中等待连接的程序被称作服务器端(Server)程序

    利用IO流实现数据的传输

      2.基本步骤

    服务器创建ServerSocket,在指定端口监听并处理请求

    客户端创建Socket,向服务器发送请求

    1.服务器端:

    创建ServerSocket(int port)对象

    在Socket上监听客户端的连接请求

    阻塞,等待连接的建立

    接受并处理请求结果

    将处理结果返回客户端

    关闭流和Socket对象

    2.客户端

    创建Socket(String host,int port)对象

    向服务器发送连接请求

    向服务器发送服务请求

    接受服务结果

    关闭流和Socket对象

      3.模拟登录

    1.功能分解

    单向:客户端向服务器端发送字符串,服务器获取字符串并输出

     

    双向:服务器端给客户端反馈,客户端得到反馈并输出

     

    文件:客户端向服务器端上传文件,服务器端获取文件并反馈结果

    多线程:服务器接受多个客户端的请求,并给出反馈,每个客户请求开启一个线程

  • 相关阅读:
    rabbitmq报错:not_a_dets_file,"/var/lib/rabbitmq/mnesia/rabbit@Sfabrici-Demo01/recovery.dets"的解决办法
    ubuntu18上关闭默认的防火墙
    《GCD宣言》全文
    springboot日志配置
    springboot打jar包【我】
    MongoDB 4.2 用户管理
    【短道速滑四】Halcon的texture_laws算子自我研究
    Android集合之SparseArray、ArrayMap详解
    浅析微信支付:下载对账单和资金账单
    学习如修行
  • 原文地址:https://www.cnblogs.com/chengkuan/p/13408770.html
Copyright © 2020-2023  润新知