java网络编程(一)----网络编程的概述及要素

前言

我们学习 java 基础的时候,基本上所有的功能只能在单机上使用。可是随着网络的发展,单机应用已经无法满足我们的需求了。就好比你打游戏时,网络游戏往往比单机游戏吃香。那我们就通过这个专题打开java网络编程的大门。

1. 概述:

网络编程的目的: 我们可以通过网络编程实现生活中简单的聊天室,无线电台,通信等功能。
想要达到这个效果需要什么?
[1] 如何准确的定位网络上的一台主机(需要相应的端口号和计算机上的某个资源)
[2] 找到这个主机,如何传输数据呢?
javaWeb: 网页编程 B/S
网络编程: TCP/IP

InetAddress就是java中封装了IP地址的类

package gs.lesson01;

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

// 测试 IP
public class TestInetAddress {
    public static void main(String[] args) throws UnknownHostException {
        //查询本机地址
        InetAddress inetAddress01 = InetAddress.getByName("127.0.0.1");
        System.out.println(inetAddress01);
        InetAddress inetAddress03 = InetAddress.getByName("localhost");
        System.out.println(inetAddress03);
        InetAddress inetAddress04 = InetAddress.getLocalHost();
        System.out.println(inetAddress04);

        //查询网站ip地址
        InetAddress inetAddress02 = InetAddress.getByName("www.baidu.com");
        System.out.println(inetAddress02);

        //常用方法
        System.out.println(inetAddress02.getCanonicalHostName());  //规范的名字
        System.out.println(inetAddress02.getHostAddress());  // ip
        System.out.println(inetAddress02.getCanonicalHostName()); // 域名或自己电脑的名称
    }
}

2. 网络通信的要素

如何实现网络通信?
[1] 通信双方地址: IP + 端口号
如:192.168.16.124:5900
[2] 规则: 网络通信协议
这个协议就好比我们所说的语言,当我们与外国人进行交流时,我们就必须使用英语,否则他们听不懂。
TCP/IP参考模型
在这里插入图片描述
在java基础的学习时,我们关注的主要是应用层上面的问题,而我们现在所学的网络编程主要关注的是传输层上的问题,我们需要理解我们是如何通过。

InetSocketAddress就是我们存放IP地址和端口的地方

package gs.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());
        //在window操作系统下可以找到C:/Windows/System32/drivers/etc这里面的hosts对其隐射进行修改
        System.out.println(socketAddress.getHostName());  //地址
        System.out.println(socketAddress.getPort());  //端口
    }
}

小结:

  1. 网络编程中有两个主要的问题
    • 如何准确的定位到网络上一台或者多台主机
    • 找到主机之后如何进行通信
  2. 网络编程中的要素
    • IP和端口号 (IP相关的类)
    • 网络通信协议 (UDP和TCP相关的类)
  3. 万物皆对象
发布了82 篇原创文章 · 获赞 6 · 访问量 6873

猜你喜欢

转载自blog.csdn.net/TheWindOfSon/article/details/105250870