Java网络编程


Java网络编程

概述


image-20201129134111905

计算机网络:

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

网络编程的目的

传播信息,数据交互

网络信息的要素

人工智能

网络协议

image-20201129141703250

小结:

  1. 网络编程中有两个主要的问题
  • 如何准确的定位到网络上的一台或者多台主机
  • 找到主机后如何进行通信
  1. 网络编程中的要素
  • ip和端口号
  • 网络通信协议
  1. 万物皆对象

ip

ip:InetAddress

  • 唯一定位一台网络计算机
  • 127.0.0.1:本机localhost
  • IP地址的分类
    • ipv4/ipv6
      • IPV4 127.0.0.1 四个字节组成 0-255 42个亿
      • IPV6 fe80::58f0:c13a:22c4:62bb%11 128位 8个无符号整数
    • 公网(互联网)-私网(局域网)
      • 192.168.x.x 这类基本上都是私有网络
  • 域名:记忆ip问题
package com.zxy.address;

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

/**
 * @Author Zxy
 * @Date 2020/11/29 20:07
 * @Version 1.0
 */
// 测试IP
public class TestInetAddress {
    public static void main(String[] args) throws UnknownHostException {
        try {
            InetAddress inetAddress1 = InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress1);
            InetAddress inetAddress2 = InetAddress.getByName("localhost");
            System.out.println(inetAddress2);
            InetAddress inetAddress3 = InetAddress.getLocalHost();
            System.out.println(inetAddress3);

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

端口

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

  • 不同的进程有不同的端口号!用来区分软件
  • 被规定0-65535
  • TCP,UDP:65535*2 tcp:80,udp:80 单个协议下,端口号不能冲突
  • 端口分类
    • 共有端口0-1023
    • http默认端口80
    • https默认端口443
    • ftp默认端口21
    • telent默认端口23
    • 程序注册端口:1024-49151

通信协议

协议:约定,就好比我们现在说的是普通话。

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

TCP

客户端

服务器

等待完善


文章作者: 夏梦
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 夏梦 !
 上一篇
Java线程面试题 Java线程面试题
Java线程面试题线程的四种启动方式 继承Thread类 在类中已经继承了某一个类的话实现Runable接口 有返回值的必须实现Callable接口 为什么要使用FutureTask来实例化Callable,看看源码: 继承了R
2021-04-09
下一篇 
Java集合类源码解析 Java集合类源码解析
Java集合类源码解析Java集合分为Collection和Map两大类 Collection接口 List ArrayList:底层Object数组,查找快,增删慢,线程不安全。默认开辟长度是10,如果要扩容,规则是当前容量的50%
2021-04-09
  目录