以下内容来自于小码哥"网络协议从入门到底层原理"
C\C++
跨平台的原理:
`C\C++`跨平台的原理
-
C\C++
跨平台: 使用平台相关的编译器生成对应平台的可执行文件
C\C++
编译之后可以生成平台对应的可执行文件
Java
跨平台的原理:
只需要编译一次, 但编译出来的是可执行文件吗? 不是
JVM
-> Java Virtual Machine
: Java虚拟机
- Java的跨平台: 一次编译, 到处运行
- 编译生成跟平台无关的字节码文件(
class
文件)
- 编译生成跟平台无关的字节码文件(
- 由对应平台的
JVM
解析字节码为机器指令(010101)
- 由对应平台的
`Java`跨平台的原理
- 如果代码有语法错误, 将编译失败, 并不会生成字节码文件
- 那就不会去运行一个
JVM
程序. 最后导致Java
程序运行失败
- 那就不会去运行一个
客户端 vs 服务器
端口: (类似银行的窗口, 提供服务)(运行一个服务器软件占用端口并监听, 对客户端的请求作出相应的处理并返回)
-
部署项目:
客户端 vs 服务器
网络互连模型
- 为了更好地促进互联网络的研究和发展, 国际标准化组织
ISO
在1985年制定了网络互连模型
OSI
参考模型, 具有7层结构
- 物理层(Physical) -> 2. 数据链路层(Data Link) -> 3. 网络层(Network) -> 4.运输层(Transport) -> 5.会话层(Session) -> 6.表示层(Presentation) -> 7.应用层(Application)
TCP/IP协议
(实战型)
- 网络接口层(Network Access) -> 2. 网际层(Internet) -> 3. 运输层(Transport) -> 4.应用层(Application)
学习研究
- 物理层(Physical) -> 2. 数据链路层(Data Link) -> 3. 网络层(Network) -> 4. 运输层(Transport) -> 5.应用层(Application)