社区
C语言
帖子详情
gcc下connect时间太长,怎么办啊
ckc
2002-10-29 08:37:54
redhat linux 7.1下gcc 2.96
connect一个地址,如果成功connect时间就比较短,如果connect不上,时间太长,我试过居然要3分钟左右才执行完。
有什么办法可以缩短这个时间?
...全文
124
4
打赏
收藏
gcc下connect时间太长,怎么办啊
redhat linux 7.1下gcc 2.96 connect一个地址,如果成功connect时间就比较短,如果connect不上,时间太长,我试过居然要3分钟左右才执行完。 有什么办法可以缩短这个时间?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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有什么关系
【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 太慢,解决办法
connect
超时
时间
的一点探讨<转>
connect
超时
时间
的一点探讨 前言: 对阻塞的
connect
到底会多久超时(返回-1,并且errno被设为ETIMEDOUT)一直也没有搞清楚,今天花
时间
看了一下代码并作了一点实验,大致得出了一点结论。没有
时间
写的太细了...
《解锁Windows下QT C++开发新姿势:
GCC
版本升级全攻略》
在 Windows 系统下完成 QT C++ 开发中
GCC
版本的升级,是一个充满挑战但收获颇丰的过程。回顾整个升级历程,从前期对项目开发状况的细致了解,包括检查项目依赖库对
GCC
版本的要求以及确认现有
GCC
版本,到对项目...
C语言
70,020
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章