带你了解Java高级编程-----网络编程

一、前言

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。

  • 计算机网络:
    把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。

  • 网络编程的目的:
    直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。

二、网络通信要素

要素一:IP和端口号

IP和端口是通信双方的地址。

  • ① 网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务;IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。
  • ②端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。

1.IP:唯一的标识Internet 上的计算机(通信实体)
2.在Java中使用InetAddress类代表IP
3.IP的分类: IPV4 和 IPV6 ;万维网 和 局域网
4.域名:www.baidu.com (相对形象容易记)
5.本地回路地址:127.0.0.1 d 对应着:localhost
6.如何实例化InetAddress: 两个方法 :getByName(String host) getLocalHost()
7.端口号标识正在计算机上运行的进程(程序)
要求:不同的进程有不同的端口号
范围:被规定为一个 16 位的整数 0~65535。
8.端口号与IP地址的组合得出一个网络套接字:Socket。

public class InetAddressTest {
   
    public static void main(String[] args) {
   
        try {
   
            InetAddress inet1 = InetAddress.getByName("192.168.00.24");
            System.out.println(inet1);

            InetAddress inet2 = InetAddress.getByName("www.baidu.com");
            System.out.println(inet2);

            //获取本地ip(1)
            InetAddress inet3 = InetAddress.getByName("localhost");
            System.out.println(inet3);
            //获取本地ip(2)
            System.out.println(InetAddress.getLocalHost());
            System.out.println(inet3.getHostName());//获取域名
            System.out.println(inet3.getHostAddress());//获取ip

        } catch (UnknownHostException e) {
   
            e.printStackTrace();
        }
    }
}

ServerSocket类方法,Socket类方法,InetAddress类的方法:
更多的方法描述,请参考菜鸟教程📚

要素二:网络协议

①网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。
②TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系结构,即物理链路层、IP层、传输层和应用层

① OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广。
② TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。

三、TCP网络编程

TCP(英语:Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP 层是位于 IP 层之上,应用层之下的中间层。TCP保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

TCP协议:

  • 使用TCP协议前,须先建立TCP连接,形成传输数据通道。
  • 传输前,采用“三次握手”方式,点对点通信,是可靠的。
  • TCP协议进行通信的两个应用进程:客户端、服务端
  • 在连接中可进行大数据量的传输。
  • 传输完毕,需释放已建立的连接,效率低

三次握手、四次挥手🔑

import org.junit.Test;

import java
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

符工爱奇

欢迎投币支持(●'◡'●)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值