zoukankan      html  css  js  c++  java
  • 网络编程—基础

     

    网络基础知识

    1OSI分层模型和TCP/IP分层模型的对应关系

     

    ==========================================================================

     

    一:TCP/IP

    TCP是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。它能够提供两台计算机之间的可靠的数据流,HTTPFTPTelnet等应用都需要这种可靠的通信通道。

     

    二:UDP

    UDP是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传送目的地,至于能够达到目的地,达到目的地的时     间以及内容的正确性都是不能保证的。

     

    既然有了保证可靠传输的TCP协议,为什么还要非可靠传输的UDP协议呢?原因有两个:

    1、可靠的传输是要付出代价的,对数据内容的正确性的检验必然会占用计算机处理时间和网络带宽。因此TCP的传输效率不如UDP高。

    2、许多应用中并不需要保证严格的传输可靠性,比如视频会议系统,并不要求视频音频数据绝对正确,只要能够连贯就可以了。所以在这些场景下,使用UDP更合适些。

     

    三、URL访问网上资源

    URL对象代表统一资源定位,是指向互联网"资源"的指针。它是用协议名、主机、端口和资源组成,

    2、通过URL对象的一些方法可以访问该URL对应的资源:

         String getFile():获取该URL的资源名

         String getHost():获取主机名

         String getPath():获取路径部分

         int   getPort():获取端口号

     

    1 public static void main(String[] args) throws IOException 2 { 3 URL url = new URL("https://i.cnblogs.com/EditPosts.aspx?opt=1"); 4 String file = url.getFile(); 5 System.out.println(file); 6 String host = url.getHost(); 7 System.out.println(host); 8 int port = url.getPort(); 9 System.out.println(port); 10 String query = url.getQuery(); 11 System.out.println(query); 12 String protocol = url.getProtocol(); 13 System.out.println(protocol); 14 }

     

     

    执行结果:

    1 /EditPosts.aspx?opt=1 2 i.cnblogs.com 3 -1 4 opt=1 5 https

     

    URL最重要的两个方法:openConnection()openStream()

    public static void main(String[] args) throws IOException 2 { 3 URL url = new URL("http://www.baidu.com"); 4 URLConnection connection = url.openConnection(); 5 InputStream is = connection.getInputStream(); 6 OutputStream os = new FileOutputStream("c:/data.txt"); 7 byte[] buffer = new byte[1024]; 8 int flag = 0; 9 while (-1 != (flag = is.read(buffer, 0, buffer.length))) 10 { 11 os.write(buffer, 0, flag); 12 } 13 os.close(); 14 is.close(); 15 }

    执行结果:

     

     

    1、代码第4openConnection()该方法用于返回URLConnection对象,表示到URL所引用的远程连接。

    2、代码第5getInputStream方法,用于返回从此打开的连接读取的输入流。

    3、后面的代码就是我们已经很熟悉的从输入流中读到数据,再通过输出流写入文件。

    4、执行的结果就是我们通过浏览器访问http://www.baidu.com,百度服务器返回的内容。

    5、这里是文本文件,我们将后缀修改为html,然后用浏览器访问,这样看起来更直观:

     

     

    四、InetAddress

     JAVA提供了InetAddress类来代表IP地址。

    1 public static void main(String[] args) throws IOException 2 { 3 InetAddress address = InetAddress.getLocalHost(); 4 System.out.println(address); 5 address = InetAddress.getByName("www.baidu.com"); 6 System.out.println(address); 7 8 }

    执行结果:

    1 WINDOWS-EC813QQ/192.168.88.1 2 www.baidu.com/115.239.211.112

  • 相关阅读:
    网页使用思源字体 CSS
    不用軟體解PPT密碼
    服务端性能测试校准v1.2
    开发语言性能对比,C++、Java、Python、LUA、TCC
    数值溢出测试工具,协议测试专用
    真人算法演示
    Visual Studio并发Qpar优化效果
    服务端性能测试工具校验v1.1
    IOCP和WSA异步协同客户端版
    服务端性能测试工具校验v1.0
  • 原文地址:https://www.cnblogs.com/domi22/p/8046864.html
Copyright © 2011-2022 走看看