perror:success 但是无法执行后续操作
int sockfd = socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
perror("socket err");
return -1;
}
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(atoi(argv[2]));
saddr.sin_addr.s_addr = inet_addr(argv[1]);
if(connect(sockfd,(struct sockaddr *)&saddr,sizeof(saddr))<0);
{
perror("connect err");
return -1;
}
这是上面的客户端网络连接,最后执行出现 perror connect success 的错误,不理解,报错为什么返回success,但是既然返回了success为什么不往下执行。
原因是
if(connect(sockfd,(struct sockaddr *)&saddr,sizeof(saddr))<0);
没错,就是判断语句加了分号。; 这样不管条件表达式是不是真,都会进入到语句里面,然后就会return -1 返回。解决办法就是去掉“ ; ”就可以了。
标签:下面,perror,success,bind,connect,saddr,sockfd,执行 From: https://www.cnblogs.com/moveddown/p/17512552.html