我必须连接到host
和port
。端口是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
...
}
答案 0 :(得分:4)
您无法将主机分配给s_addr
。您需要将其从字符串主机名/ IP号转换为s_addr
如果您是POSIX,请查看getaddrinfo()
,否则您可以使用inet_addr()
,gethostbyname()
,gethostbyaddr()
等内容。关键是,需要进行转换。
我建议使用谷歌来获取一些示例客户端/服务器代码...这里有很多。包括SO。