使用stlplus库在有线网络中连接,在无线网络中不连接
Using stlplus library connect in wired network and do no connect in wireless
all。
我使用开源库stlplus进行tcp消息传递。我的工作计划是下一步。
我有服务器应用程序和客户端应用程序。它们可以运行并等待另一方出现,然后连接并交换消息。使用服务器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;
}
我解决了这个问题。
不确定我是否治疗了问题的根源,但谁知道呢。在这里,我写下解释,以防有人遇到同样的问题,或者只是可以添加一些东西来让它更清楚。
我的申请是按以下方式组织的:有一个类,我在单独的线程中启动服务器。我有两个该类的实例,因此大约在同一时间创建了两个服务器。正如我发现的那样,一个无法用错误消息10093初始化(WSAStartup尚未调用或WSACleanup已调用)。
我试图在ip_socket类中调试它,但多线程出现了问题。因此,我制作了一个互斥锁,它在创建服务器之前被锁定,然后立即解锁。
在那之后,所有的问题都消失了。
- 在不知道套接字的情况下关闭网络连接
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- 在没有管理员权限的情况下连接到同一网络中的命名管道
- 连接无线电流和 MP3 解码器
- 为什么我们应该为网络连接指定一个端口?
- 无线局域网连接问题
- 多个网络连接的线程与异步 I/O
- 为什么Bazel在重新启动或更改无线网络后进行重建
- Winsock客户端 - 通过TCP/IP4连接到网络摄像机
- 如何在我当前连接的网络中获取本地 IP 地址?
- iOS 上的 TCP 流不会显示在无线网络上
- 使用 C 扫描无线网络
- 如何在QT或Windows API中连接到无线WIFI网络
- C++无线网络信号强度
- 如何在 OS X 下以编程方式加入无线网络
- 连接到网络的所有设备的列表
- 视觉原生无线网络 API C++.关闭/打开无线网络
- 使用stlplus库在有线网络中连接,在无线网络中不连接
- 无法在无线网络上通过UDP广播进行快速传输
- 全局路由 结合无线网络和点对点连接时出错