TCP/IP网络编程笔记——理解网络编程和套接字,套接字类型与协议设置(一)
一:理解网络编程和套接字
网络编程就是编写程序使两台连网的计算机相互交换数据。操作系统会提供一个名为“套接字”的部件,利用套接字我们可以进行数据传输。
套接字就是用来连接网络的工具
构建服务端套接字
下面用电话机的方式讲解套接字的创建及使用方法:
1.准备电话机
2.调用bind函数(分配电话号码)
3.调用listen函数(连接电话线)
4.调用accept函数(拿起话筒)
网络编程中接受连接请求的套接字创建过程可整理如下:
第一步:调用socket函数创建套接字。
第二步:调用bind函数分配IP地址和端口。
第三步:调用listen函数转为可接收请求状态。
第四部:调用accept函数受理连接请求。
构建客户端套接字
请求连接函数connect:
二:套接字类型与协议设置
创建套接字
协议族
套接字通信中的协议具有一些分类。通过socket函数的第一个参数传递,可分成如下几类:
另外,套接字中实际采用的最终协议信息是通过socket函数的第三个参数传递的。在制定的协议族范围内通过第一个参数决定第三个参数。
套接字类型
套接字类型1:面向连接的套接字(SOCK_STREAM)
特征:
1.传输过程中数据不会丢失
2.按序传输数据。
3.传输的数据不存在数据边界(收发数据的套接字内部有缓冲区)。
4.套接字必须一一对应
用一句话概括面向连接的套接字:
可靠的,按序传递的,基于字节的面向连接的数据传输方式的套接字。
套接字类型2:面向消息的套接字(SOCK_DGRAM)
特征:
1.强调快速传输而非顺序传输。
2.传输的数据可能丢失也可能损毁。
3.传输的数据有数据边界。
4.限制每次传输的数据大小,存在数据边界
用一句话概括面无向连接的套接字:
不可靠的,不按序传递的,以数据的高速传输为目的的套接字。