在C语言中,我们不能直接打开端口。我们可以使用套接字(socket)编程来实现这个功能。以下是一个简单的示例,展示了如何使用C语言创建一个TCP服务器,监听445端口: ```c #include <arpa/inet.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <unistd.h> int main() { int server_fd, client_fd; struct sockaddr_in server_addr, client_addr; socklen_t client_addr_len = sizeof(client_addr); // 创建套接字 server_fd = socket(AF_INET, SOCK_STREAM, 0); if (server_fd == -1) { perror("socket"); exit(1); } // 绑定地址和端口 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(445); if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { perror("bind"); exit(1); } // 监听连接 if (listen(server_fd, 5) == -1) { perror("listen"); exit(1); } printf("Server is listening on port 445... "); // 接受客户端连接 while (1) { client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &client_addr_len); if (client_fd == -1) { perror("accept"); continue; } printf("New connection from %s:%d ", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); // 关闭客户端连接 close(client_fd); } // 关闭服务器套接字 close(server_fd); return 0; } ``` 这个示例创建了一个简单的TCP服务器,监听445端口。当有客户端连接到服务器时,它会打印客户端的IP地址和端口号。这个示例仅用于演示目的,实际应用中可能需要处理更多的错误情况和功能。 [2024-04-27 07:47:07 | AI写代码神器 | 638点数解答]