1,网络编程
可以让设备中的程序和网络上其他设备中的程序进行数据交互(实现网络通信的)
2,java提供了哪些网络编程的方式
java.net.*包下提供了网络编程的解决方案
基本的通信架构
有两种--CS架构(Client客户端/Server服务端)--BS架构(Browser浏览器/Server服务端)

无论CS架构和BS架构都必须依赖网络编程
3,网络通信三要素
IP地址:设备在网络中的地址,是唯一的标识
端口:应用程序在设备中唯一的标记
协议:连接和数据在网络中传输的规则
4,IP地址
全称:互联网协议地址
有两种形式:IPv4--32位,不够用
和IPv6--共128位,分为八段表示,每段每四位编码成一个十六进制位表示,八段用冒号隔开
IP域名:例如http://www.itheima.com
公网IP,内网IP
公网IP:可以连接互联网的IP地址
内网IP:也叫局域网IP,只能组织机构内部使用
192.168开头就是常见的局域网地址,专为组织机构使用
特殊IP:172.0.0.1、localhost:代表本机IP,只会寻找当前所在的主机
IP常用命令:
ipconfig:查看本机IP地址
ping IP地址:检查网络是否连通
物理地址(MAC地址):设备的唯一标识,出厂焊死在设备上的
InetAddress--代表ip地址
5,端口
标记正在计算机设备上运行的应用程序的,被规定为一个16位的二进制,范围为0~65535
分类:
周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
注册端口:1024~49151,分配给用户进程或某些应用程序
动态端口:49152~65535,因为它一般不固定分配某种进程,而是动态分配
注意:我们自己开发程序一般使用注册端口,且一个设备中不能出现两个程序端口号一样
6,协议
网络通信协议:网络上通信的设备,实现规定的连接规则,以及传输数据的规则
开放式网络互联标准:OSI网络参考模型
OSI网络参考模型:全球网络互联标准--太过理想化
TCP/IP网络模型:事实上的国际标准

7,传输层的两个协议
UDP:用户数据报协议
特点:无连接,不可靠通信
不实现建立连接,数据按照包发,包里面包含:自己的ip,程序端口,目的地ip,程序端口等
发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认
故而是不可靠的,但是通信效率高,语音通话,视频直播等
TCP:传输控制协议
特点:面向连接,可靠通信
TCP的最终目的:要保证在不可靠的信道上实现可靠的传输
TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接
三次握手:
可靠连接:确认通信双方,收发消息都是正常无问题的(全双工)
传输数据进行确认,每次发消息都有编号标识
四次挥手断开连接:
目的:确保双方数据的收发都已经完成

8,UDP通信
特点:无连接,不可靠
java提供了java.net.DatagramSocket类来实现UPD通信
参数一:要发送的数据,字节数组
参数二:发送数据的大小
参数三:目的地IP地址
参数四:接收端端口号

