TCP:传输控制协议,面向连接的服务(打电话),安全、可靠(三次握手、响应+重传、四次挥手)速度相对较慢,一般应用在对安全性性、完整性有严格要求的场景:ftp、SMTP、HTTP
步骤一:套接字
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
功能:创建socket描述符,可以把socket当作文件来看待,发送数据就是写文件,接收数据就是读文件。
步骤二:准备地址
注意:函数接口定义的是sockaddr,而实际提供的是sockaddr_un或sockaddr_in
struct sockaddr {
sa_family_t sa_family;
Char sa_data[14];
}
struct sockaddr_un
{
__SOCKADDR_COMMON (sun_); //地址类型 参看domain
char sun_path[108]; // socket文件的路径
};
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port; // 端口号 大端字节序
struct in_addr sin_addr; // ip地址 大端4字节整数
}
struct in_addr
{
in_addr_t s_addr;
};
步骤四:绑定
4、绑定
socket描述符与物理通信载体(网卡或socket文件)绑定在一起。
int bind(int sockfd, const struct sockaddr *a