欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网络编程概述

程序员文章站 2024-03-11 20:36:07
...

网络编程

概述

计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

网络编程的目的:无线—>传播交流信息,数据交换,通信。

网络通信的要素:通信双方的IP,端口号。

网络通信的协议:http, ftp, smtp, tcp, udp等。

网络编程概述

IP

IP地址:InetAddress,唯一定位网络上的计算机;本机 localhost:127.0.0.1。

ip地址分类:ipv4/ipv6

​ Ipv4:127.0.0.1,4个字节组成,0-255 约42亿个;亚洲4亿,2011年用尽。

​ Ipv6:fe80::40c5:1492:3aa9:db4b%11 128位,8个无符号整数。

公网(互联网),私网(局域网):ABCD类地址 192.168.xx.xx专门给组织内部使用的,

package com.zr.lesson01;

import java.net.InetAddress;
import java.net.UnknownHostException;

//测试ip
public class TestInetAddress {
    public static void main(String[] args) {
        try {
            //查询本机ip地址
            InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
            System.out.println(inetAddress);
            InetAddress inetAddress3 = InetAddress.getByName("localhost");
            System.out.println(inetAddress);
            InetAddress inetAddress4 = InetAddress.getLocalHost();
            System.out.println(inetAddress);
            //查询百度ip地址
            InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress2);

            //常用方法
            //System.out.println(inetAddress2.getAddress());
            System.out.println(inetAddress2.getCanonicalHostName());//规范的名字
            System.out.println(inetAddress2.getHostAddress());//ip
            System.out.println(inetAddress2.getHostName());//域名  或者自己电脑的名字
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

端口

端口port表示计算机上一个程序 的进程:

  • 不同的进程有不同的端口号!用来区分软件。

  • 端口被规定0-65535个。

  • TCP/UDP:65535*2个 单个协议下端口号不能冲突。

  • 端口分类

    • 公有端口:0~1023(尽量不要用,一般给内置进程或服务器使用)

      • HTTP:80
      • HTTPS:443
      • FTP:21
      • Telent:23
    • 程序注册端口:1024~49151,分配给用户或者程序。

      • Tomcat:8080
      • MySQL:3306
      • Oracle:1521
    • 动态,私有:49152~65535

      1. netstat -ano #查看所有的端口
      2. netstat -ano|findstr "5900" #查看指定的端口
      3. tasklist|findstr "8696" #查看指定端口的进程
      4. Ctrl+shift+Esc #打开任务管理器
      
      package com.zr.lesson01;
      
      import java.net.InetSocketAddress;
      
      public class TestInetSocketAddress {
          public static void main(String[] args) {
              //查询本机地址
              InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080);
              InetSocketAddress socketAddress1 = new InetSocketAddress("localhost", 8080);
              System.out.println(socketAddress);
              System.out.println(socketAddress1);
              
              System.out.println(socketAddress.getAddress());
              System.out.println(socketAddress.getHostName()); //地址
              System.out.println(socketAddress.getPort()); //端口
          }
      
      

通信协议

网络通信协议:速率,传输码率,代码结构,传输控制。

TCP/IP协议簇:实际上是一组协议

重要:

  • TCP:用户传输协议
  • UDP:用户数据报协议
  • IP:网络互联协议

TCP/UDP对比

TCP:打电话

  • 连接,稳定

  • 三次握手,四次挥手

  • 客户端,服务端,传输完成释放连接,效率低

UDP:发短信

  • 不连接,不稳定
  • 客户端,服务端,没有明确的界限
  • 不管有没有准备好,都可以发送
  • DDOS:洪水攻击!(饱和攻击)