十一、网络编程

发布时间 2023-11-10 20:12:16作者: SIKeborn

一、网络编程概述

计算机网络:

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

网络编程:

就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

 

二、网络模型

概述:计算机网络之间以何种规则进行通信,就是网络模型研究问题。

网络模型一般是指 OSI(Open System Interconnection开放系统互连)参考模型 TCP/IP参考模型

          网络参考模型图

 

三、网络通信

三要素:

1、IP地址:InetAddress

网络中设备的标识,不易记忆,可用主机名

C类地址:前三部分是网络号段,最后一部分是主机号段

特殊的ip地址:

      127.0.0.1 本地回环地址(localhost

      xxx.xxx.xxx.255 广播地址

      xxx.xxx.xxx.0   子网掩码

      xxx.xxx.xxx.1  网关

 

 

2、端口号 用于标识进程的逻辑地址,不同进程的标识

物理端口 网卡口

逻辑端口 我们指的就是逻辑端口

    A:每个网络程序都会至少有一个逻辑端口

    B:用于标识进程的逻辑地址,不同进程的标识

    C:有效端口:0~65535,其中0~1024系统使用或保留端口。.如果将来自己定义端口号的话,应该在1025~65535

 通过netstat -ano可以查看端口号

 

 

3、传输协议 通讯的规则

常见协议:TCP,UDP

UDP

将数据源和目的封装成数据包中,不需要建立连接;每个数据报包的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快

编程:

UDP协议下发送端发送数据
1、创建Socket对象 java中对udp协议提供了一个类DatagramSocket
2、将要发送的数据封装成数据包 java提供了一个类DatagramPacket表示数据包
3、将数据包发送出去
4、关闭资源

UDP协议接收端接收数据
1、创建接收端的Socket对象
2、创建一个空的数据包,用于接收发送端发送过来的数据
3、调用方法接收数据,数据将会被存储到上面创建的数据包中
4、解析数据包,得到接收到的数据
5、关闭资源

 

 

TCP

建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低

编程:

    发送端:1、创建Socket对象,指定ip地址和端口号

        2、获取通道中的输出流

        3、向服务器写数据

        4、关闭资源

    服务器端:1、创建ServerSocket对象

         2、调用accept方法监听客户端的连接

            3、获取通道中的输入流

         4、接收数据

         5、关闭资源

 

注意事项:
1、客户端的Socket对象需要执行服务器的ip地址和端口号,服务器端的Socket对象需要绑定一个端口号
2、客户端和服务器端需要获取通道中的流,来进行输入或者输出
3、启动的时候要先启动服务器端

IP地址:要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址

IP地址的获取与操作:为了方便我们对IP地址的获取和操作,java提供了一个类InetAddress 供我们使用

获取任意主机:getByName

主机名:getHostName

主机Ip地址:getHostAddress

 

四、Socket

Socket套接字: 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。

Socket原理机制: 通信的两端都有Socket。

         网络通信其实就是Socket间的通信。

        数据在两个Socket间通过IO传输。

            Socket机制图解