网络编程
网络编程的基本内容:
基本概念: 计算机网络:计算机网络是指将**地理位置不同的具有独立功能的多台计算机及其外部设备**,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
而计算机网络存在的目的就是:交换数据,交流信息
那么如何带到这个目的呢?首先需要两大要素:
1.需要知道对方的地址。第一:定义对方的具体地址需要通过定位对方的IP来实现;其次:需要一个专门的东西来和对方进行交流:端口;最后需要知道自己和对方的什么资源进行交流,也就是具体定位到对方主机上的某个资源地址
2.如何实现通信,或者说通信的介质:协议,例如TCP和UDP协议
网络通信的要素
-
通信地址:
IP地址:用于定位对方的网络地址,在公网中具有唯一性
端口:便于双方进行通信交流交流
-
网络协议:
TCP/UDP协议:
这些协议的存在使得网络交流成为可能
IP地址
唯一定位一台计算机的地址
其中,本机的IP一般都是127.0.0.1(localhost)
IP地址的分类:ipv4/ipv6
ipv4:形如:192.168.xx.xx 由四个字节组成 0到255 总共有四十二亿个地址,于2011年已经分配完
ipv6:由128位组成, 格式为X:X:X:X:X:X:X:X 采用十六进制表示 ipv6的地址数量多到可以给每一粒沙子都分配一个地址
公网(互联网)-私网(局域网)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H0BcVFTP-1669033069273)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20221121194931627.png)]
abcde类地址
192.168.xx.xx一般都是组织内部的网络
Java中用来得到IP地址的类:InetAddress
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ipGet {
public static void main(String[] args) throws UnknownHostException {
InetAddress IP1 = InetAddress.getByName("127.0.0.1");
System.out.println(IP1);
InetAddress baidu = InetAddress.getByName("www.baidu.com");
System.out.println(baidu);
System.out.println(baidu.getCanonicalHostName());//得到规范的名字
System.out.println(baidu.getHostName());//得到网站名字
System.out.println(baidu.getHostAddress());//得到IP地址
}
}