网络编程学习笔记

网络编程

1.1概述

计算机网络:

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

网络编程的目的:

传播信息交流信息,数据交换。通信

想要达到这个效果需要什么:

  1. 如何准确的定位网络上的一台主机:192.168.31.134:端口,定位到这个计算机上的某个资源
  2. 找到了这个主机,如何传输数据呢?

javaweb 网页编程 B/S

网络编程:ICP/IP C/S

1.2网络通信的要素

如何实现网络的通信?

通信双方地址:

  • IP
  • 端口号

规则:网络通信的协议

TCP/IP参考模型:

在这里插å¥å›¾ç‰‡æè¿°

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qkREytO-1614587210819)(C:\Users\AG\AppData\Roaming\Typora\typora-user-images\image-20210228145138229.png)]

小结:

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

1.3IP

ip地址:inetAddress

  • 唯一定位一台网络上计算机
  • 127.0.0.1:本机localhost
  • ip地址的分类
    • IPV4/IPV6
      • IPV4 127.0.0.1 :4个字节组成,0~255, 42亿;30亿都在北美,亚洲4亿。2011年就用尽了
      • IPV6 fe80::40e2:bafb:37d8:4f77%15 :128位。8个无符号整数
    • 公网(互联网)-私网(局域网)
      • ABCD类地址
      • 192.168.xx.xx,专门给组织内部使用的
  • 域名:记忆IP问题!
    • IP:www.vip.com
package com.sean.base.netStudy;

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

/**
 * 测试IP
 * @create 2021-02-28 15:16
 */
public class ipStudy {
   
    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端口

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

  • 不同的进程有不同的端口号!
  • 被规定 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
netstat -ano#查看所有的端口
netstat -ano|findstr "5900"#查看指定的端口
tasklist|findstr "6928"#查看指定端口的进程
package com.sean.base.netStudy;

import java.net.InetSocketAddress;

/**
 *
 * @create 2021-02-28 16:04
 */
public class InetSocketAddressDemo {
   
    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()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值