zoukankan      html  css  js  c++  java
  • 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之间连接了两个管子,一个流入,一个流出。

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

  • 相关阅读:
    【iOS】去掉Tabbar顶部线条
    iOS中控制器的释放问题
    码云平台帮助文档_V1.2
    iOS键盘 样式/风格
    cocoapods的安装 升级版
    Unity异常捕获
    tomcat和jdk的安装配置
    Unity读取Excel表格
    NFS
    K8S存储相关yaml
  • 原文地址:https://www.cnblogs.com/yujianjingjing/p/2486655.html
Copyright © 2011-2022 走看看