接收套接字的C语言代码应该怎么写
时间: 2023-05-20 16:07:32 浏览: 57
以下是一个简单的C语言接收套接字的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/socket.h>
int main() {
int socket_desc, client_sock, c;
struct sockaddr_in server, client;
char client_message[2000];
// 创建套接字
socket_desc = socket(AF_INET, SOCK_STREAM, 0);
if (socket_desc == -1) {
printf("无法创建套接字");
}
// 设置服务器信息
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(8080);
// 将套接字绑定到指定IP和端口
if (bind(socket_desc, (struct sockaddr *)&server, sizeof(server)) < 0) {
puts("绑定失败");
return 1;
}
puts("绑定成功");
// 监听来自客户端的连接
listen(socket_desc, 3);
// 等待客户端连接
puts("等待客户端连接...");
c = sizeof(struct sockaddr_in);
client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
if (client_sock < 0) {
puts("连接失败");
return 1;
}
puts("连接成功");
// 从客户端接收数据
while (recv(client_sock, client_message, 2000, 0) > 0) {
// 处理数据
printf("%s", client_message);
fflush(stdout);
memset(client_message, 0, 2000);
}
// 关闭套接字
close(socket_desc);
return 0;
}
```
这个示例代码可以创建一个TCP套接字并绑定在8080端口,等待客户端连接,接收客户端发送的消息并输出。你可以根据自己的需要修改端口号、接收缓冲区大小等参数。