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之间连接了两个管子,一个流入,一个流出。

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

  • 相关阅读:
    2018QBXT刷题游记(4)
    洛谷 P4302 字符串折叠 题解
    hdu5009 Paint Pearls 题解
    CF467C George and Job 题解
    洛谷P2622 关灯问题II 题解
    洛谷 P3049园林绿化 题解
    洛谷 P1064 金明的预算方案 题解
    洛谷P1979 华容道 题解
    2018QBXT刷题游记(3)
    2018QBXT刷题游记(2)
  • 原文地址:https://www.cnblogs.com/yujianjingjing/p/2486655.html
Copyright © 2011-2022 走看看