一,什么是网络编程?
所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信
二,TCP/IP协议简介
为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(InternetProtocolSuite)就是通用协议标准。因为互联网协议包含了上百种协议标准,但是最重要的两个协议是TCP和IP协议,所以,大家把互联网的协议简称TCP/IP协议。
TCP/IP根据网络功能将网络分为了四层:链路层,网络层,传输层,应用层。有什么用途呢,是为了规范网络数据传输。
三,端口
假如左边的陌陌要和右边的陌陌通信,是怎么实现的呢,首先左边的陌陌通过ip地址找到右边对应的一台电脑,但是电脑上有很多进程,那怎么确定就要发给陌陌这个进程呢,答案是通过端口号来找到陌陌这个进程的,因为每台电脑上的不同进程都会对应一个不同的端口号。就好像我要去朋友家里玩,首先我知道他的家在哪里。到了他家里的时候,有很多房间,有他妈妈的,弟弟的,所以我们要找到他自己的房间。这是的房间对应端口号,家里的地址对应电脑的ip地址。
问题又来了,既然端口号是为了区分不同的进程的,那为什么不用pid呢?每台电脑的不同进程也对应不同的pid啊?这是因为pid是不固定的,端口号是固定的,在一台的电脑上对应某个进程的pid是3520,在别的电脑上相同的进程的pid可能就是3529了,所以才要用端口号来重新区分进程用于不同电脑上的通信。
端口的分类:1.知名端口(0~1023) 2.动态端口(1024~65535)
知名端口如:80端口用于http服务,21端口用于ftp服务。
动态端口是用户可以自己分配的。
如何查看自己的端口:netstat -an
四,ip地址
用逻辑值来标记一台电脑,如用192.168.1.100来标记这一台电脑。这个逻辑值就是ip地址。