- 论坛徽章:
- 0
|
一个socket描述符,在 不设置 非阻塞的情况下 如果使用connect是会 阻塞连接的不
比较矛盾的是,我试了一下(server端不开,client直接连), 当连接到 外部的 地址时,就是阻塞的,局域网内的地址就是 不阻塞的- int s = socket(AF_INET, SOCK_STREAM, 0);
- if(s == -1){perror("create socket fail");return 1;}
- struct sockaddr_in myAddr = {0};
- myAddr.sin_family = AF_INET;
- myAddr.sin_port = htons(60001);
- myAddr.sin_addr.s_addr = inet_addr("192.168.1.24");
- //myAddr.sin_addr.s_addr = inet_addr("202.96.209.5");
- if(connect(s, (struct sockaddr*)&myAddr, sizeof(myAddr)) == -1)
- {
- if(errno != EINPROGRESS)
- {
- perror("connect fail");
- return 1;
- }
- }
- else
- {
- printf("connect success\n");
- return 1;
- }
复制代码 注释的部分 就是变成 外部的地址, 为啥内网 直接就是 connect refuse, 而 外网 会阻塞
望 高手回答 |
|