1.什么是网络编程?
计算机跟计算机之间通过网络进行数据传输
2.常见的软件架构有哪些
CS(客户端/服务端)/BS(浏览器/服务端)
3.通信的软件架构BS\CS各有什么优缺点
CS:需要开发客户端
BS:不需要开发客户端
CS:适合定制专业化的办公类软件,如idea,LOL
BS:适合移动互联网应用,可以在任何地方随时访问的系统
2.网络编程三要素
- IP:设备在网络中的地址,是唯一的标识
- 端口号:应用程序在设备中唯一的标识
- 协议:数据在网络中传输的规则,常见的协议有UDP/TCP/http/ftp
3.IP
Internet Protocol,是互联网协议地址,也称IP地址
是分配给上网设备的数字标签
通俗理解为上网设备在网络中的地址是唯一的
常见IP分类为IPV4、IPV6
-
IPv4:是给每个连接在网络上的主机分配一个32bit地址。按照TCP/IP规定,IP地址用二进制来表示,每个IP地址长32bit,也就是4个字节。例如一个采用二进制形式的IP地址是“11000000 10101000 00000001 01000010”,这么长的地址,处理起来也太费劲了。为了方便使用,IP地址经常被写成十进制的形式,中间使用符号“.”分隔不同的字节。于是,上面的IP地址可以表示为“192.168.1.66”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多
-
IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。为了扩大地址空间,通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,这样就解决了网络地址资源数量不够的问题,可以为地球上的每一粒沙子都设定IP
4.IPV4细节
- 如何解决IPV4不够的问题?
利用局域网IP解决IP不够的问题
5.InetAddress类
package com.luas.javabase.network;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @author by FZB
* @date 2023/7/27
*
*
* static InetAddress getByName(String host) 确定主机名称的Ip地址,主机名称可以是机器名称,也可以是Ip地址
* String getHostName() 获取此Ip地址的主机名
* String getHostAddress() 返回文本中显示的IP地址字符串
*/
public class MyInetAddressDemo1 {
public static void main(String[] args) throws UnknownHostException {
//1.获取InetAddress对象
//Ip对象,一台电脑的对象
InetAddress inetAddress = InetAddress.getByName("192.168.192.1");
System.out.println(inetAddress);
//如果并没有这台电脑存在,那么返回的则是ip地址
String hostName = inetAddress.getHostName();
System.out.println(hostName);
String ip = inetAddress.getHostAddress();
System.out.println(ip);
}
}
5.协议
协议:计算机网络中,连接和通信的规则被称为网络通信协议
UDP协议:
- 用户数据报协议
- UDP是面向无连接通信协议,速度快,有大小限制,一次最多发送64k,数据不安全,易丢失数据
- 在线视频,语音通话
TCP协议:
- 传输控制协议
- TCP协议是面向连接的通信协议
- 速度慢,没有大小限制,数据安全