目录
在了解网络编程之前先要知道什么是网络。
网络指的是多台计算机之间进行连接而形成像网结构的一种形象比喻,而网络通讯就是指网络中的计算机进行信息交流和资源共享的操作。根据通讯规模的大小又可将网络分成局域网(LAN)和广域网(WAN),这个大家都知道就不详说。为了实现网络通信,就必须知道要访问的主机地址,也就是IP,还要知道主机上上面的进程也就是端口号(Port),同时还要知道它们之间是通过什么方式沟通的,也就是要知道它们沟通的协议是什么。这三点是网络通讯最基本的条件,这就好比你去寄快递,寄快递就要在快递单上面写对方的地址和电话号码,然后你们决定是通过顺丰送还是圆通送。地址对应IP,对方电话号码对应端口号,邮寄方式对应协议。
IP地址是用来访问电脑主机的,它由32位二进制数组成,占用4个字节,比如“127.0.0.1”这个IP就表示本机地址。
端口号是电脑中进程的访问入口,就像之前MySQL一样,它的端口号就是3306,你如果在DS窗口中没有输入正确的端口号,你就不能访问到MySQL进程。端口号在计算机中占两个字节,可表示的数字范围为0~65535。
网络通讯中的一种约定,比如电子邮件传输需要遵循SMTP协议,文件传输需要遵循FTP协议。这就好比你和外国人交流,就要说英语,和国人交流你就要说汉语。
因为协议就是一种约定,都是可以自定义的,因此在计算机早期就有很多约定,比如上面提到的。但是从软硬件层面上面来看,最主要还是分为七层,这也就是现在的OSI七层网络模型。七层模型中从下到上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。其中上面的三层可以统称为一层也就是应用层,我们将第二种表示形式称为TCP/IP五层模型。
在TCP/IP协议中用五元组来标识一个网络通信,五元组包含:
1.源IP
2.目标IP
3.源端口号
4.目的端口号
5.协议号
用五元组来标识一次网络通讯:
客户端:主动请求数据的一方
服务器:被动接收请求的一方
请求(request):客户端给服务器发送请求的数据
响应(response):服务器给客户端返回的数据
客户端与服务器交流的方式:
网络上不同的主机通过不同的进程,以编程的形式实现网络数据传输
在我们自己编程的时候肯定是不可能有多台主机的,但是一台电脑上面,只要进程不同也可以实现网络编程。
1.客户端构造请求并发送给服务器
2.服务器接收到请求并解析
3.服务器处理请求里面的业务
4.服务器将处理的结果返回给客户端
5.客户端接收响应并显示
注意:客户端和服务器是相对的,主要看谁发送,谁被动接收
发送方层层构造数据就叫做封装,接收方层层解析数据就叫做分层。
下面演示一个案例: