调用 'userConnect()' 方法跳过

Call to the 'userConnect()' method skips

本文关键字:方法 userConnect 调用      更新时间:2023-10-16

我要发布这个问题,因为我对出了什么问题一无所知。我最近使用Select()API作为我作业的一部分对客户服务器交互式文件共享应用程序进行了编码。它可以在我的笔记本电脑上工作。但是我被告知要在大学服务器上运行它,因为那是我的项目将进行测试的地方。我确保我的申请正常工作并提交了项目。

当我的应用程序开始时,它调用了" getMyipAddress()"方法来获取主机的本地IP地址,后来我将其用于标记自我连接。现在问题是,如果我删除'cout<<"在这种方法中,它跳过'userconnect()'例程。

void getMyIPAddress (char* command, char* port) {
    struct hostent *he;
    struct in_addr ipv4addr;
    char dnsIP[] = "8.8.8.8";                                   // Google DNS IP
    char dnsPort[] = "53" ;                                     // Google DNS TCP Port
    // Converting IP to struct in_addr type     
    inet_pton(AF_INET, dnsIP, &ipv4addr);
    // getting host details from IP address
    he = gethostbyaddr(&ipv4addr, sizeof ipv4addr, AF_INET);
    cout << "BAZINGA!" << endl;
    // Connecting to google DNS to get IP address of this process
    userConnect (he->h_name, dnsPort, port, command);
}

我在提交之前确实删除了此不必要的" cout"。现在,它不输入连接到Google DNS和Retreivs IP地址的USerConnect()。如果我保留它,它可以正常工作。

我没有发布这个问题来浪费您的宝贵时间。如果您能理解可能导致的,您会减轻我的挫败感。

edit ::@tanmay的答案:"我将cout&lt;&lt;移到了userconnect()例程中,然后再连接。它不起作用。"'userconnect()中没有错误,'它只是在被称为时应应有的。"

编辑:我意识到它在哪里出错。请参阅后续职位。

由于某种原因正在更改变量

谢谢,萨拉特。

gethostbyaddruserConnect中有可能由于COUT而解决的错误。很可能是由于冲洗输出缓冲区。

请尝试用其他代码替换它,并分享实验的结果。

祝你好运。