社区
C语言
帖子详情
gcc下connect时间太长,怎么办啊
ckc
2002-10-29 08:37:54
redhat linux 7.1下gcc 2.96
connect一个地址,如果成功connect时间就比较短,如果connect不上,时间太长,我试过居然要3分钟左右才执行完。
有什么办法可以缩短这个时间?
...全文
117
4
打赏
收藏
gcc下connect时间太长,怎么办啊
redhat linux 7.1下gcc 2.96 connect一个地址,如果成功connect时间就比较短,如果connect不上,时间太长,我试过居然要3分钟左右才执行完。 有什么办法可以缩短这个时间?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cool_killer
2002-10-30
打赏
举报
回复
static void connect_alarm(int signal)
{
siglongjmp(jmp_env, 1);
printf("connect time out\n");
exit(-1);
}
int init_sock(char *host,int port_id)
{
static int i_called = 0;
int tmp_id,socket_fd;
struct sockaddr_in serv_addr;
struct hostent *h = gethostbyname(host);
if(!h){
printf("Host name lookup failure for %s\n",host);
return -1;
}
printf("tmp_id = %d port_id =%d\n",tmp_id,port_id);
memset((char *) &serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
memcpy(&(serv_addr.sin_addr.s_addr), h->h_addr, h->h_length);
serv_addr.sin_port = htons(port_id+tmp_id);
if ( (socket_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("TcpClient: can't open stream socket");
return -2;
}
signal(SIGALRM, connect_alarm);
alarm(60);
if(sigsetjmp(jmp_env, 1))
{
printf("TcpClient: connect() timed out");
goto done;
}
if (connect(socket_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
printf("TcpClient: can't connect to server : %s",strerror(errno ));
return -3;
}
return socket_fd;
done:
alarm(0);
};
sans
2002-10-29
打赏
举报
回复
使用异步方式,connect后执行select,设置select的writefds参数监视connect动作,并设置timeout,如果connect不上,在timeout范围内可以马上知道。
ckc
2002-10-29
打赏
举报
回复
如何使用异步方式?哪个函数啊
pi1ot
2002-10-29
打赏
举报
回复
这和gcc有什么关系
FFmpeg4.3系列之30:Linux+
GCC
+CMake+Qt开发
我将带领大家一起来学习:Linux+
GCC
+CMake+Qt开发FFmpeg;
GCC
、make、CMake的讲解;Ubuntu18编译FFmpeg和第三方插件;Ubuntu18配置Qt开发环境;Ubuntu8编译libx264和libx265;Centos7编译FFmpeg; 具体内容包括: Linux...
【C语言随笔2】
GCC
编译环境下Socket编程简单实践
使用C语言在
gcc
编译环境下,完成TCP连接的建立以及简单的Client与Server之间的socket通信
基于tcp
connect
的端口扫描程序
如果对于每一个目标端口以串行的方式使用单独的
connect
()调用,需要较长的
时间
,我们可以通过使用非阻塞I/O设置一个较低的
时间
周期或者同时观察多个套接字来提高扫描速度环境:kali linux+
gcc
6.xx#include&...
安装/升级
gcc
时,执行 ./contrib/download_prerequisites 太慢
安装/升级
gcc
时,执行 ./contrib/download_prerequisites 太慢,解决办法
编译安装MySQL8.0
gcc
的编译安装
说明:make的
时间
会很长。 安装完后,还需要将原来的
gcc
环境用新版本的
gcc
替换掉,否则mysql在安装时还是用的原来的
gcc
, 依次执行: mv /usr/bin/
gcc
/usr/bin/
gcc
447 mv /usr/bin/g++ /usr/bin/g++447...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章