相关函数
1.创建一个网络套接字
int socket(int domain, int type, int protocol);
domain:地址族
- AF_UNIX, AF_LOCAL Local communication Unix域协议族
- AF_INET IPv4 Internet protocols
- AF_INET6 IPv6 Internet protocols
type: 指定创建的套接字的类型
- SOCK_STREAM //流式套接字
- SOCK_DGRAM //数据报套接字
- SOCK_RAW //原始套接字:直接跳过传输层
protocol:指定一个具体的协议,一般为0,不指定具体协议
返回值:成功返回套接字描述符, 失败返回-1。
2.绑定网络地址到套接字上面去
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
- sockfd: 要绑定的套接字
- addr: 要绑定的网络地址
- addrlen: 绑定的网络地址的大小。
- 地址相关数据结构:
//通用的地址结构:
struct sockaddr
{
u_short sa_family; //2个字节的地址族
char sa_data[14]; //14字节协议地址
}
//internet 协议地址结构
struct sockaddr_in
{
u_short sin_family; //地址族
u_short sin_port; //端口
struct in_addr sin_addr; //IPV4地址
char sin_zero[8];//作为填充
}
//IPV4地址结构
struct in_addr
{
in_addr_t s_addr;