使用了socket的函数
时间: 2023-12-10 18:06:29 浏览: 25
可以使用以下函数来使用socket:
1. socket():创建一个新的套接字;
2. bind():绑定一个地址到套接字;
3. listen():监听连接请求;
4. accept():接受连接请求,创建新的套接字;
5. connect():连接到远程套接字;
6. send():发送数据;
7. recv():接收数据;
8. close():关闭套接字。
这些函数可以通过引入 <sys/socket.h> 和 <netinet/in.h> 头文件来使用。在使用这些函数之前,需要先创建一个套接字,可以使用socket()函数来创建。该函数需要指定协议族、套接字类型和协议类型。例如,以下代码片段可以创建一个TCP套接字:
```c
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
```
这里,AF_INET 是IPv4协议族,SOCK_STREAM 是TCP套接字类型,0 表示使用默认协议类型。接下来,可以使用bind()函数将套接字绑定到一个地址上,例如:
```c
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(8080);
addr.sin_addr.s_addr = INADDR_ANY;
bind(sockfd, (struct sockaddr*)&addr, sizeof(addr));
```
这里,我们将套接字绑定到本机的8080端口上。使用listen()函数可以开始监听连接请求:
```c
listen(sockfd, 10);
```
这里,我们允许同时连接的客户端数量为10个。接下来,可以使用accept()函数接受连接请求:
```c
struct sockaddr_in client_addr;
socklen_t client_len = sizeof(client_addr);
int client_sockfd = accept(sockfd, (struct sockaddr*)&client_addr, &client_len);
```
这里,我们创建了一个新的套接字 client_sockfd 来表示与客户端的连接,同时获取了客户端的地址信息 client_addr。最后,可以使用send()和recv()函数来进行数据的发送和接收:
```c
char buf[1024];
recv(client_sockfd, buf, sizeof(buf), 0);
send(client_sockfd, "Hello, world!", 13, 0);
```
这里,我们接收客户端发来的数据,并向客户端发送了一条消息。最后,可以使用close()函数关闭套接字:
```c
close(client_sockfd);
close(sockfd);
```