Java网络编程含代码(狂神说)

Posted 轻狂书生han

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java网络编程含代码(狂神说)相关的知识,希望对你有一定的参考价值。

网络编程

1.1、概述

地球村:你在北京,你有一个美国朋友!

计算机网络

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

网络编程的目的

无线电台..传播交流信息,数据交换。通信。

如何实现

1.如何准确的定位网络上的一台主机 192.168.16.124:端口,定位到这个计算机上的某个资源

2.找到了这个主句,如何传播数据呢?

javaweb:网页编程 B/S

网络编程:TCP/IP C/S

1.2、网络通信的要素

如何实现网络的通信

通信双方地址:

  • IP
  • 端口号
  • 192.168.16.124:5900

规则:网络通信的协议

TCP/IP参考模型:

小结:

1.网络编程中有两个主要的问题

  • 如何准确的定位到网络上的一台活着多台主机

2.网络编程中的要素

  • IP和端口号 ip
  • 网络通信协议 udp,tcp
  1. 万物皆对象

1.3、IP

ip地址:InetAddress

  • 唯一定位一台网络上的计算机

  • 127.0.0.1:本机localhost

  • ip地址的分类

    • IP地址分类 ipv4/ipv6

      • IPV4 127.0.0.1,四个字节组成,0-255,42亿个~;30亿在北美,亚洲4亿,2011念就用尽了;

      • IPV6 fe80::8857:96a0:a5da:eef5%11,128位。8个无符号整数!

        2001:0bb2:aaaa:0015:0000:0000:1aaa:1312     
        
    • 公网(互联网) - 私网(局域网)

      • ABCD类地址

      • 192.168.xx.xx,专门给组织内部使用的

  • 域名:记忆IP问题

    • IP:www.jd.com
package comip.study;

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

public class TestInetAddress 
    public static void main(String[] args) 
        try 
            //查询本机地址
            InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
            System.out.println(inetAddress1);
            InetAddress inetAddress3 = InetAddress.getByName("localhost");
            System.out.println(inetAddress3);
            InetAddress inetAddress4 = InetAddress.getLocalHost();
            System.out.println(inetAddress4);

            //查询网站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();
        
    


1.4、端口

端口:"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴

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

  • 被规定0-65535

  • TCP,UDP:65535*2 TCP:80,UDP:80,单个写一下,端口号不能冲突

  • 端口分类

    • 共有端口0-1023

      • HTTP:80

      • HTTPS:443

      • FTP:21

      • SSH:22

      • Telnet:23

    • 程序注册端口:1024~49151,分配用户或者程序

      • Tomcat:8080
      • MySQL:3306
      • Oracle:1521
    • 动态、私有端口:49152-65535

      netstat -ano  #查看所有的端口
      netstat -ano|findstr "5900"  #查看指定的端口    先查后面的
      tasklist|findstr "8964"    #查看微信的进程
      

package comip.study;

import java.net.InetSocketAddress;

public class TestInetSocketAddress 
    public static void main(String[] args) 
        InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080);
        InetSocketAddress socketAddress2 = new InetSocketAddress("localhost", 8080);
        System.out.println(socketAddress);
        System.out.println(socketAddress2);

        System.out.println(socketAddress.getAddress());
        System.out.println(socketAddress.getHostName());//地址
        System.out.println(socketAddress.getPort());//端口
    


以上是关于Java网络编程含代码(狂神说)的主要内容,如果未能解决你的问题,请参考以下文章

Java网络编程实现简单通信含代码(狂神说)

Java多线程-线程池的使用与线程总结(狂神说含代码)

Swagger(狂神说Java)(内含教学视频+源代码)

java多线程远程协作(狂神说)附上课代码

狂神说Java笔记--网络编程部分笔记

B站狂神说Java笔记-网络编程