Skip to content

tcping功能异常 #10

@paradiseduo

Description

@paradiseduo

例如:
我设置了重复10次,但是如果在第n次connect失败,那么就不会执行剩下的10-n次了。

那这样的话计算failed次数就没有意义了,因为一旦有一个failed后面的都不会再执行。

我看其他语言实现的tcping都是可以断掉之后继续的,像这样:

success 10ms
success 11ms
failed
success 9ms
failed
success 12ms

finish test, total 6 times, success 4 times, failed 2 times.

但是目前该程序实现的是这样:

success 10ms
failed
然后就停了。。

这种情况常见于去连接一个国外延迟不稳定的IP

目前看下来问题主要是出在这里:

    sigset(SIGALRM, tcp_conn_handler);
    alarm(1);
    int conn_res = connect(self->sock, (struct sockaddr *)addr, sizeof(struct sockaddr));
    alarm(0);
    sigrelse(SIGALRM);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions