最近看到网络编程的文章,发现自己有些基础知识也忘记了,今天想和你们分享最基础的知识点。
计算机网络概述
根据计算机网络的定义,通过一定的物理设备将处于不同位置的计算机连接起来组成计算机网络,包含的设备是计算机、路由器、交换机等等,交换机与路由器为核心。
对于网络编程来说,关注的是计算机与计算机之间的通讯,首要问题是如何查找计算机?
01
网络中的每一台设备都有唯一的数字标识,即IP地址。地址的格式按照IPV4标准,255.255.255.255形式,IP地址可以是固定的,也可以是动态的。使用ADSL拨号上网属于固定地址,
02
IP地址不容易记住,引入域名概念,在实际传输中需要将域名变为IP地址,即域名解析,需要DNS服务器。
03
为解决计算机同时运行多个网络程序,引入端口概念,每一个程序占用唯一端口,进行数据传输。端口号从0-65535之间。每一个端口对应唯一一个网络程序,每一个网络程序可对应多个端口。
网络编程概述
网络编程就是要实现多台设备之间的数据交换,和普通单机程序不同,网络程序最大的不同时需要交换的数据运行在不同的计算机中,这就造成数据交换的复杂,我们首先要了解通讯过程。
网络通讯是基于“请求——响应”模式,第一次发起通讯的程序是客户端程序,第一次等待的程序是服务器程序。C/S、B/S结构区分方式就是客户端程序是否专门开发。P2P是一种特殊的程序,既包含客户端程序,也包含服务器程序,例如BT.
最后介绍网络编程中最复杂的概念——协议。计算机比较笨,我们需要提前规定好数据的格式,这个格式就是协议。那么如何编写格式?其实是随意的,只要按照协议能够生成唯一的编码,按照协议又可以唯一解析出数据内容即可。也正是网络程序使用不同的协议,客户端程序都是专用结构。在实际网络编程中,最麻烦的内容并不是数据的接收与发送,各编程语言都有相关API,最麻烦的是协议的设计、生产、解析。则才是网络编程的核心。
网络通讯方式:TCP、UDP。TCP需要建立专门的虚拟连接与确认传输是否正确。速度相对较慢,传输的内容相对较长。这两种通讯方式都是实际网络编程使用的。有时单用,有事两者结合。
关于网络编程基础知识先介绍这些,如果想要深入了解相关知识,请阅读专门计算机网络书籍,下面介绍Java语言中网络编程的相关技术
领取专属 10元无门槛券
私享最新 技术干货