我对 C 完全陌生。并且正在遵循有关套接字的yt教程。然而他正在使用该close(sock)功能。有2个问题:
sock。套接字有别的名称。你能解释一下吗?这个问题可能看起来有点太愚蠢了。这是客户端代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
// Create a socket
int network_socket;
network_socket = socket(AF_INET, SOCK_STREAM, 0);
// Address for the socket
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(9002);
server_address.sin_addr.s_addr = INADDR_ANY;
int connection = connect(network_socket, (struct sockaddr *) &server_address, sizeof(server_address));
printf("%d\n", connection);
char response[256];
recv(network_socket, &response, sizeof(response), 0);
printf("%s\n", response);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
没有名为 sock 的变量。套接字有别的名称。
是的,它是您代码中的network_socket。所以你要close(network_socket);。
我找不到关闭功能。编译器说该函数不存在
您需要#include <unistd.h>,这是声明 close() 的地方。(如果你看一下,man close你会在顶部看到这个。)