java网络编程
**网络编程:**可以让设备中的程序与网络上其他设备中的程序进行数据交互的技术(实现网络通信)
基本的通信架构
1、CS架构(Client/Server服务端)
2、BS架构(Browser浏览器/Server服务端)-重点
只要有浏览器,有网就可以通过浏览器访问中国服务端,即使服务器升级访问的也是最新的服务端,是当下更流行的通信架构
学习java.net.*下的包来学习网络编程
网络编程三要素
有了IP地址、端口以及协议这三部分后即可以实现网络通信
IP
1、IPv4
2、IPv6
IP域名
DNS域名解析
公网IP、内网IP、本机IP、IP常用命令
1、公网IP、内网IP随时可能会变。但每台电脑上的物理IP永远都不可能变
2、ping IP地址 检查本机与其他的电脑是否联通
InetAddress
packagecom.itheima.demo1inetaddress;importjava.net.InetAddress;publicclassInetAddressDemo1{publicstaticvoidmain(String[]args){//目标:认识InetAddress获取本机IP对象和对方IP对象try{//1、获取本机IP对象InetAddressip1=InetAddress.getLocalHost();System.out.println(ip1);//DESKTOP-57UI8PI/192.168.1.77System.out.println(ip1.getHostName());//DESKTOP-57UI8PISystem.out.println(ip1.getHostAddress());//192.168.1.77//2、获取对方IP对象InetAddressip2=InetAddress.getByName("www.baidu.com");//可以写对方的IP地址或域名System.out.println(ip2);//www.baidu.com/110.242.70.57System.out.println(ip2.getHostName());//www.baidu.comSystem.out.println(ip2.getHostAddress());//110.242.70.57//3、判断本机与对方主机是否互通System.out.println(ip1.isReachable(5000));//判断在5s内是否能与百度互通,若通则true,否则false}catch(Exceptione){e.printStackTrace();}}}网络编程小结
端口
1、端口号的作用是什么?
唯一标识正在计算机设备上运行的进程(程序)
2、一个设备中,能否出现2个应用程序的端口号一样,为什么?
不可以,如果一样会出现端口冲突错误
协议
计算机网络中,连接和通信数据的规则被称为网络通信协议
开放式网络互联标准:OSI网络参考模型(理论上)
实际上的国际标准是TCP/IP网络模型
传输层的2个通信协议:
两个协议供程序员选择
UDP协议
特点:
1、用户数据包协议
2、UDP是面向无连接,不可靠传输的通信协议
3、速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据
TCP协议
特点:
1、TCP是一种面向连接的可靠通信协议
2、传输前,采用“三次握手”方式建立连接,点对点的通信
3、在连接中可进行大数据量的传输
4、传输后,采用“四次挥手”方式断开连接,确保消息全部收发完毕
5、通信效率相对较低,可靠性相对较高
三次握手建立可靠连接:
四次挥手断开连接: