gpt4 book ai didi

c++ - 连接到 C 中的主机

转载 作者:行者123 更新时间:2023-11-30 21:45:49 25 4
gpt4 key购买 nike

我必须连接到hostport 。端口是 const,但是 host变量应该从 shell 输入。我有一个错误。

int main(int argc, char ** argv)
{
if (argc<2){
printf("Need more arguments\n");
return 1;
}
int sock;
if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0){
perror("socket creating error");
return 1;
}

struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(22222);
addr.sin_addr.s_addr = argv[1]; // try to conect host
...
}

最佳答案

您不能像这样将主机分配给s_addr。您需要将其从字符串主机名/IP 数字转换为 s_addr

的正确格式

如果您是 POSIX,请查看 getaddrinfo(),否则您可以使用 inet_addr()gethostbyname()gethostbyaddr()等等。关键是,需要进行转换。

我建议在谷歌上搜索一些示例客户端/服务器代码......有很多。包括这里的SO。

关于c++ - 连接到 C 中的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16345559/

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