问题遇到的现象和发生背景
为什么我在linux
系统下,调用connect
函数,向一个合法的但是随机的地址发起连接时,他不会报错。同时,我向本地的随机一个端口发起连接时,他会报错
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
这个是我的测试代码
#include <iostream>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main() {
struct sockaddr_in serv_addr;
serv_addr.sin_family=AF_INET;
// 随机的端口
serv_addr.sin_port=htons(795);
// 随机的地址
serv_addr.sin_addr.s_addr = inet_addr("112.4.8.12");
int sockfd;
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket creat error");
return 1;
}
int n;
if ((n = connect( sockfd, ( struct sockaddr *)&serv_addr , sizeof(struct sockaddr)) ) < 0 ) {
// 连接失败
std::cerr << "error" << std::endl;
}
return 0;
}
运行结果及详细报错内容
运行完以后,不会报出任何的错误。
正常来说这个地方不应该是会显示error
来表示连接失败嘛
求指点