• Java 网络编程(一):Client与Server之间的数据传送


      目前对于我这种刚接触网络编程的豆芽来说,对网络编程最直观的了解就是:一些的Client和一个Server端之间的数据传递。具体当然是复杂的,但是那是我以后要学的。

    今天我知道了可以通过Socket和DatagramSocket两种套接字来进行Client和Server的链接,它们分别对应于TCP和UDP协议

    DatagramPacket类:

    DatagramPacket类是数据报包。

    数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。我觉得这个是比较复杂抽象的理解,我个人就简单的理解为一个装了字节Buffer的包裹,包裹的上面写了收信人的地址和姓名等信息(具体的就是端口号,IP,等等)。

      DatagramSocket类通过receive和send方法进行收发数据报包,也就是收发DatagramPacket类的具体对象,从而实现Client和Server。之间的数据传送。

    Socket类:

      Socket套接字是对应与TCP协议的。除了TCP与UDP协议的不同带来Socket与DatagramPacket的不同外。在传送数据的途径上Socket是通过InputStream和OutputStream两个流。比如:

      

    Socket socket = new Socket("cuishen.iteye.com",80);  
    InputStream in = socket.getInputStream();  
    OutputStream out = socket.getOutputStream(); 

    这三句相当于在Client和Server之间连接了两个管子,一个流入,一个流出。

    我今天是第一次接触网络编程这个概念,所以理解的都是表面的东西。但好歹是个好的开始。如有不对的请多指教。

  • 相关阅读:
    Node 命令行工具 commander.js 快速上手
    使用 express 极简处理前端路由的 history 模式问题
    在博客中插入希沃白板课件
    休息一下(屏幕提醒)
    vue htmlWebpackPlugin.options.title 标题设置
    使用 docker 部署 elasticsearch 并安装 ik 中文分词器
    .NET 中的计时 tick 是多长?
    剑指offer队列的最大值(主队列+辅助队列)
    Golang垃圾回收原理解析
    Golangchannel底层实现精要
  • 原文地址:https://www.cnblogs.com/yujianjingjing/p/2486655.html
Copyright © 2020-2023  润新知