2015-11-11 79 views
0

全部。在有线网络中使用stlplus库连接,并且在无线连接中不进行连接

我使用tcp-messaging的开源库stlplus。 我的工作计划是接下来的。

我有服务器应用程序和客户端应用程序。它们既可以运行,也可以等待其他方出现,然后连接并交换消息。连接使用服务器IP地址和端口号创建。

在我的有线本地网一切正常。如果只运行一个程序(看起来很明显,但进一步阅读)以及连接交换消息时遇到任何问题,则程序不会连接。

之后,我决定在无线网络中测试它们。所以我在一台笔记本上创建了托管网络,并从另一台笔记本上连接到它我还创建了两台电脑的家庭组。计算机之间的Ping(ip和端口)是可以的。我甚至可以使用Windows的msg.exe发送消息。

现在是问题所在。 当服务器没有运行时,客户端程序说(连接到服务器),甚至发送消息。 这怎么可能?我可以忽略哪些设置? 长时间使用有线网络时未发现此类问题。

我甚至在防火墙上做了特殊的允许规则,甚至在完全关闭之后,情况仍然是一样的。

我不知道要检查或下一步做什么。

我这个代码所做的最简单的硬编码的样品和结果是一样的(((

我得到的“连接”字无限 // =========== ================================================

#include <iostream> 
// stlplus 
#include "portability.hpp" 
#include "strings.hpp" 

using namespace stlplus; 
int INI_TCP_TIMEOUT = 10000000; 

int main (int argc, char* argv[]) 
{ 
    stlplus::TCP_client tcpClient("192.168.173.1", 139, INI_TCP_TIMEOUT); 

    if (false == tcpClient.initialised()) 
    { 
    std::cout << "client: retry"; 
    return 0; 
    } 

    if (false == tcpClient.connected()) 
    { 
    std::cout << "client: retry"; 
    return 0; 
    } 

    while (true == tcpClient.connected()) 
    { 
    std::cout << "connected; \n"; 
    } 

    return 0; 
} 

回答

0

我解决了这个问题。

不知道,我处理问题的根源,但谁知道。 这里我写的情况下,有人解释遇到了同样的问题,或只是可以加s使它更清晰。

我的应用程序组织在下一个方法: 有一个类,我在单独的线程中启动服务器。我有两个该类的实例, ,因此两个服务器大约在同一时间创建。正如我发现无法用错误消息10093初始化(WSAStartup尚未调用或WSACleanup已被调用)。

我试图调试ip_socket类内部但多线程有问题。所以,我在服务器创建之前锁定了一个互斥锁,并在之后立即解锁。

之后,所有问题都消失了。