socket()
是一个系统调用函数,用于创建一个新的套接字。它在网络编程中非常常见,用于建立网络连接。
函数签名:
#include <sys/types.h>
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
参数解释:
domain
:指定协议族或地址族,常见的包括AF_INET
(IPv4)、AF_INET6
(IPv6)、AF_UNIX
(UNIX域)等。type
:指定套接字类型,常见的包括SOCK_STREAM
(流式套接字,使用TCP)和SOCK_DGRAM
(数据报套接字,使用UDP)等。protocol
:指定具体的传输协议,通常设置为0以自动选择与给定域和类型匹配的默认协议。
返回值:
- 成功时返回新创建的套接字描述符(非负整数),失败时返回-1,并设置相应的错误码。
示例用法:
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror("socket");
exit(1);
}
这段代码会创建一个基于IPv4和流式传输的套接字。如果成功,则返回一个新的套接字描述符,否则打印错误信息并退出程序。
注意,在使用完套接字后需要及时关闭它以释放资源:
close(sockfd);
此外,在进行网络编程时还需调用其他函数(如bind()
、listen()
、accept()
等)来完成套接字的绑定、监听和接受连接等操作。
内容由零声教学AI助手提供,问题来源于学员提问