第一个函数是socket函数。 socket函数的Linux头文件以及函数定义如下:
#include<sys/socket.h>
int socket(int domain, int type, int protocal);
该函数含义是创建一个套接字,可以这样比喻理解,小明家里安装固定电话,第一步首先得去买个电话机,才能完成后续通信。因此,在网络编程前,我们需要调用socket创建个套接字(类似购买个电话机)。
函数参数以及返回值如下:
/**
* 函数作用:创建一个socket
*
* @param domain 告诉系统使用哪个底层协议族,IPv4还是IPv6
* @param type 指定服务类型
* @param protocal 一般默认为0
* @return 函数执行成功返回一个socket文件描述符,失败返回-1
*/
int socket(int domain, int type, int protocal)
第1个参数domain指定协议族,取值为PF_INET,用于IPv4;取值为PF_INET6,用于IPv6,本教程取值PF_INET。
第2个参数type指定服务类型,取值SOCK_STREAM(流服务,适用TCP协议)或者SOCK_UGRAM(数据包服务,使用UDP协议)
写个程序创建个socket吧
#include <stdio.h>
#include <sys/socket.h>
int main()
{
int server_socket;
server_socket = socket(PF_INET, SOCK_STREAM, 0);
if (server_socket == -1) {
perror("socket create error");
}
printf("socket is %d\n", server_socket);
return 0;
}
第2行引入头文件sys/socket.h,socket函数的头文件。
第8行调用socket函数创建个TCP socket(type取值为SOCK_STREAM)。
在右侧建立个c文件,试编写个程序:创建一个socket。