winsock2相关内容

TCP 打孔

我正在尝试使用 mingw 工具链通过 Windows 套接字实现 TCP 打孔.我认为这个过程是正确的,但洞 似乎没有.我使用 this 作为参考. A 和 B 连接到服务器 S S 发送给 A、B 的路由器 IP + 用于连接S 的端口 S 对 B 做同样的事情A 启动 2 个线程: 一个线程尝试使用S 发送的信息连接到B的路由器当另一个线程连接到 S 时,另一个线程正在等待 ..
发布时间:2021-12-28 12:42:53 其他开发

结构体的序列化

假设我有一个结构体,我想使用 winsock 2 通过网络将其成员值发送到另一个系统.我使用的是 C++ 语言.我如何将它转换为 char * 记住结构必须在发送之前序列化,以及如何在另一端将 char * 反序列化为结构?我发现 boost 序列化是对类似问题的建议,但谁能用一个小代码片段来说明序列化和反序列化? 这个问题可能看起来很基本,但相关帖子的其他答案并没有太大帮助. 解决方 ..
发布时间:2021-12-21 22:08:44 C/C++开发

确定socket和fd之间

在unix上一切都是文件函数read()、write()、的方法>close() 在 Win32 上不受支持. 我想模拟它,但不知道如何在 WinSocks2 上区分 sock 是 socket 还是 fd. //如果`sock`是网络套接字则返回1,//0 如果 `sock` 是文件描述符(包括 stdio、stderr、stdout),...//-1 在以上都不是int is_net_ ..
发布时间:2021-09-25 20:04:37 其他开发

为什么下面的代码让我的电脑发出哔哔声?

我很难理解为什么这段代码让我的电脑发出哔哔声.我已将这部分代码隔离为偶尔发出哔哔声的部分,但我看不出它有什么问题. const int BUFFER_LENGTH = 8192;字符缓冲区 [BUFFER_LENGTH + 1];int recvResult;做{recvResult = recv(webSocket, buffer, BUFFER_LENGTH, 0);缓冲区[recvResu ..
发布时间:2021-09-25 19:58:30 C/C++开发

是否可以判断进程中是否已调用 WSAStartup?

我已经开始编写一个使用套接字的 ActiveX 控件. 使用此控件的应用程序可能也可能不使用套接字.我的控件是否可以判断是否已调用 WSAStartup? 如果没有,就调用它.一个小测试表明多次调用 WSAStartup 是可以容忍的.但是如果请求不同的 winsock 版本会发生什么?这会破坏应用程序的其他部分吗? 解决方案 是的,这是可能的. 这是怎么做的. boo ..
发布时间:2021-09-25 19:48:25 其他开发

连接到服务器的多个 Socket 客户端

我正在设计一个模拟器应用程序,该应用程序启动到服务器的多个套接字连接(大约 1000 个连接).我不想启动那么多线程来处理这些连接,因为系统无法处理那么多客户端.使用 Select 没有意义,因为我需要循环访问 1000 个可能很慢的连接.请建议我如何处理这种情况. 解决方案 您希望通过 I/O 完成端口 (IOCP). 一时难以解释,但任何需要支持大量并发套接字的 Windows ..
发布时间:2021-09-25 19:21:56 其他开发

为什么在包含 WinSock2.h 时会出现大量编译器错误?

我正在尝试使用 C++ 中的 WinSock2.h 进行 UDP Flood,但仅在 WinSock2.h 上就收到了 70 多个错误和 17 个警告,所有错误都是重新定义、来自 ws2def.h 的语法错误和“不同的联系".我做错了什么还是WinSock2有问题?如果有任何用处,我使用的是 64 位 Windows 10,Visual Studio 2015 #include "stdafx ..
发布时间:2021-09-25 19:11:31 C/C++开发

SChannel/SSL 实现?

我可以轻松地使用“win sockets"来实现 HTTP,但是我一直在努力使用“SChannel"来实现 HTTPS,“至少对我来说"这几乎没有记录.如何为 HTTPS 通信建立安全连接?是否有任何安全或性能方面的注意事项? 解决方案 SChannel 与 Windows 集成得很好,允许您在不询问用户凭据的情况下执行身份验证.Schannel 的工作级别低于 HTTP.它允许您打开安全 ..
发布时间:2021-09-25 19:00:28 C/C++开发

在 TCP 三向握手之前获取 INADDR_ANY 客户端套接字的源 IP 和端口?

我使用的是 Windows 7,在 connect 之前使用 bind 和 SO_REUSEADDR,并将本地地址结构设置为 IP 地址 INADDR _ANY 和端口 0(零),以便让操作系统选择客户端套接字的源详细信息. 首先,我了解到在连接到服务器之前无法获取源 IP,因为此时已选择源 IP,并且多个地址可能有效.但是端口是在连接之前选择的,那么有没有办法弄到呢?(getsocknam ..
发布时间:2021-09-04 19:59:56 其他开发

如何使用 C++ ping 我的 Windows 计算机上的远程计算机?

我使用了以下代码.它可以工作,但是在 Visual Studio 中的调试模式下,如果您停止调试,计算机会出现蓝屏,因此它没有用.我做了一些研究,发现这是 icmpapi 的一个常见错误.有没有办法ping计算机C++? #include #include #include //声明并初始化变量处理 hIcmpFile;无符号长 ipaddr = INADDR_NONE;DWORD dwRet ..
发布时间:2021-06-17 18:59:49 C/C++开发

close() 和 closesocket() 可以互换吗?

我在这里看到很多答案都说使用 close() 来销毁套接字,但我使用的指南来自 msdn 让我使用 closesocket().我想知道是否有区别,是否有理由使用其中之一. 在这两种情况下,我都看到了使用 shutdown() 的建议,这样一切都很好. 解决方案 close() 是一个 *nix 函数.它适用于任何文件描述符,*nix 中的套接字是文件描述符的一个示例,因此它也可以正 ..
发布时间:2021-06-07 19:34:02 C/C++开发

使C ++不等待用户输入

所以,我正在尝试使c ++ WinSock2聊天,只是为了学习。 这是一个控制台应用程序,我想接受用户输入(用于发送给对方),但我仍然希望能够接受。 (这样您就可以写一条消息,同时仍然能够接收到一条消息)... 使用 cin>>时,输入; 程序“暂停”,直到用户输入了某些内容为止,即该程序是“基于回合”的(一个用户写了东西然后发送,然后另一个用户写了东西然后发送)。 / p> 有没有 ..
发布时间:2020-10-01 03:48:33 C/C++开发

如何销毁线程对象

我正在编写基于C ++的多线程聊天服务器。 当新客户端加入时,主线程会创建一个新线程来管理客户端。 我想在客户端断开连接时销毁线程,因此我正确设置了此功能,以便在客户端发送退出消息时调用Terminate()。 但是Terminate()不仅销毁了单个线程,还销毁了所有线程。 应该做什么,以便仅我要销毁的线程被销毁了? 解决方案 您不必执行任何特殊操作。 st ..
发布时间:2020-09-28 00:48:50 其他开发

在win_mutex锁中boost :: asio :: io_service崩溃

我在使用boost :: asio时遇到了问题,其中使用全局io_service实例创建的计时器和/或套接字在构建期间崩溃.发生崩溃的系统如下: Windows 7 用于Windows桌面的Visual Studio 2013 Express; v 12.0.31101.00更新4 Boost 1.57,动态链接,使用多线程进行编译,例如boost_thread-vc120-mt ..
发布时间:2020-09-22 05:11:23 C/C++开发

FireBreath FB :: PluginWindowWin包含问题

我试图按照答案的步骤进行操作 浏览器插件中的Directx控件 但是当我添加在中提到的解决方案时 http://colonelpanic.net/2010/11/firebreath-tips -在Windows上绘画/ FireBreath提示:在Windows上绘图 “" 1.特定于您的插件对象窗口 将EVENTTYPE_CASE中指定的事件源的类型更改为FB :: Plug ..
发布时间:2020-05-28 20:21:51 其他开发

TCP打孔

我正在尝试使用mingw工具链使用Windows套接字实现TCP打孔.我认为这个过程是正确的,但是 hole 似乎没有必要.我使用了此作为参考. A 和 B 连接到服务器 S S 发送到 A , B 的路由器IP +用于连接到 S 的端口 S 对 B 执行相同的操作 A 开始2个线程: 一个线程尝试使用 S 发送的信息连接到 B 的路由器 当另一个线程连接到 S 时,另一个线程正 ..
发布时间:2020-05-17 18:53:32 其他开发

IO完成端口:单独的线程池以处理出队数据包?

注意:我已经为此添加了C ++标记,因为a)代码是C ++,并且b)使用C ++的人可能已经使用了IO完成端口.所以请不要大喊. 我正在使用IO完成端口,并最终完全理解(并经过测试证明)-两者均在 RbMm 的帮助下进行-CreateIoCompletionPort()中NumberOfConcurrentThreads参数的含义. 我有下面的小程序,该程序创建10个线程,所有线程都在 ..
发布时间:2020-05-17 18:50:31 其他开发

用C ++刷新套接字

在c ++中调用send函数后,我尝试刷新套接字. 我使用了winsock2.h库. 我需要在发送消息后立即发送数据,但是找不到像flash函数之类的任何函数. 我正在尝试将消息发送到设备,并且它希望一个接一个地接收消息. 我的意思是,如果我在发送方中发送两条消息,例如"MessageOne"和"MessageTwo",则接收方收到的"MessageOneMessageTwo"不是 ..
发布时间:2020-05-17 18:44:04 C/C++开发