gpt4 book ai didi

无法在 linux 中绑定(bind)套接字

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:30 26 4
gpt4 key购买 nike

这是我的功能。我将参数端口作为 80 传递,但我始终无法绑定(bind)套接字。

int create_socket(int port)
{
int sock;
struct sockaddr_in name;

sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
fprintf(stderr, "Can not create socket\n");
return -1;
}
//Assigning a name to the socket
name.sin_family = AF_INET;
name.sin_port = htons((unsigned short)port);
name.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sock, (const struct sockaddr *) &name, sizeof(name)) == -1) {
fprintf(stderr, "Can not bind socket\n");
return -1;
}
return sock;
}

最佳答案

通常小于 1024 的端口号被众所周知的网络服务器使用,在 linux 中,需要 root 权限才能打开这些端口。

80 是 HTTP 端口,因此您的程序需要 root 权限。

关于无法在 linux 中绑定(bind)套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47286318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com