草庐IT

c++ - WIN32 select() 报告 listen() 套接字异常; WSAGetLastError() = 0?

标题也许说明了一切?Windows10、VisualStudioCommunity2017。C++服务器监听一个端口,并将生成的FD放入一个fd_set中用于输入,一个用于异常。select()被调用。它返回,并且一个连接被accept()ed。它的FD也被添加到这两个fd_sets。连接正常,然后结束。然后从两个fd_sets中删除它的FD。在下次调用select()时,我被告知监听套接字出现异常,但WSAGetLastError()为零。根据我的笔记,监听FD设置了O_NONBLOCK,因为:Theremaynotalwaysbeaconnectionwaitingaftersel

c++ - Win32 异步套接字基本问题

我已经在C#中完成了客户端-服务器语音聊天(如ventrilo),现在正在非托管win32c++中进行。我有一个关于在C++中如何处理异步读/写的问题。在C#中,您有一个在BeginSend/BeginRecieve完成后调用的函数(EndSend/EndRecieve)。这是如何在C++中完成的?我查看了msdn并用谷歌搜索,但找不到答案。例如,下面是按下按钮时运行的代码,触发调用此函数的WM_WRITE消息:[...]caseID_BUTTON_SEND:SendMessage(hWnd,SOCKET_TCP,0,FD_WRITE);break;[....]caseFD_WRITE

tcp - 当我们将 TCP 监听器安装为 Win 服务时,防火墙会阻止 TCP 服务

我创建了一个TCP监听器,它在单独的线程上继续监听挂起的请求。如果客户端与服务器连接,则每个客户端在不同的线程上提供服务。最初我开始使用控制台应用程序来启动监听器(虽然它不合适,但我将它用于测试目的)。在控制台应用程序和防火墙打开的情况下,Windows提示我允许访问该应用程序。稍后在不同IP上的客户端和服务器之间的通信成功。后来我把我的申请做成了winservice。但是现在windows没有提示我允许访问。现在我无法从不同的IP进行通信。本地主机工作正常。有帮助吗? 最佳答案 您需要向Windows防火墙添加一个条目以允许传入流

VB.NET/WIN32/WMI 监控打开网络连接的最佳方式

我正在开发自己的反恶意软件应用程序。我已经成功地实现了文件系统和进程监控,现在我正在寻找“某种防火墙功能”。我已经做了一些研究并找到了iphlpapi.dll,netstat-o解析。确切地说,当新的IP(TCP/UDP/其他)连接打开时,我想接收带有以下数据的事件。远程IP地址协议(protocol)(TCP/UDP/...)港口打开连接的进程ID我不想运行仍然检查netstat输出的计时器,因为它无效。当检测到与恶意IP的连接时,我需要快速暂停进程(我知道如何暂停进程)。 最佳答案 我怀疑除了编写驱动程序之外,唯一的方法就是Wi

win11共享打印机无法连接怎么办

很多小伙伴都将电脑更新升级成Win11系统,当我们使用多台电脑却只有一台打印机时,就需要共享打印机却出现了Win11共享打印机无法连接的情况,遇到这种问题应该怎么解决呢,下面小编就给大家详细介绍一下Win11共享打印机无法连接的解决方法,大家感兴趣的话就来看看吧。Win11共享打印机无法连接的解决方法:方法一:1、打开此电脑,进入C盘中的"C:WindowsSystem32"位置。2、接着在其中找到"win32spl.dll"文件,将其复制粘贴备份到其他位置。3、然后在连接打印机的电脑中,右击任务栏的开始,选择菜单中的"运行"打开。4、在其中输入"regedit",回车打开。5、进入注册表编辑

如果数据大小超过 1074 字节,则 TCP 消息在 Win7 中被分段(拆分)

我使用.NET框架中的简单Socket类通过TCP发送和接收数据消息。当我在WindowsXP上运行我的tcp客户端应用程序时,数据消息没有碎片化(拆分)。但是,当我在Windows7上运行相同的tcp客户端应用程序时,当数据消息大小超过1074字节时,数据消息会被分段(拆分)。IPEndPointipEndPoint=newIPEndPoint("",601);SockettcpSocket=newSocket(ipEndPoint.AddressFamily,SocketType.Stream,ProtocolType.Tcp);tcpSocket.Connect(ipEndPoi

winapi - 以编程方式确定 Win32 上 TCP 连接的数据包丢失

我有一个使用winsock创建TCPIP套接字的win32应用程序。这很好,除了在某些情况下我想知道实际套接字的统计信息。发送的数据包、接收的数据包、发送的总字节数等。但我想看到的最重要的数据是数据包丢失。我一直无法找到获取此类数据的正确调用,我查看了getsockopt,但找不到获取此类数据的好方法。有没有办法在WindowsAPI上获取TCP套接字的底层统计信息?作为引用,我使用的是Windows7(64位版本)谢谢! 最佳答案 你可以试试GetTcpStatisticsEx.它返回MIB_TCPSTATS结构,其中包含重传计数

android - 适用于 Win32/Android 的基本 Indy TCP 客户端/服务器

我正在尝试设置一个非常基本的单一客户端/服务器系统,这样我就可以从我的PC发送一个字符串到Android平板电脑。平板电脑对该字符串进行处理,然后将字符串发送回PC。代码:服务器端(平板电脑)procedureTForm1.Button1Click(Sender:TObject);//starttheserverbeginIdTCPServer1.Bindings.Clear;IdTCPServer1.Bindings.Add.SetBinding('xxx.xxx.x.x',4405);//forthexxx'stheIPadresofthetabletIdTCPServer1.Ac

windows - 最大并发 TCP/IP 连接数 - Win XP SP3

有谁知道WindowsXPSP3上的最大并发TCP/IP连接数是多少?我正在尝试对一台机器进行负载测试,并想知道应用程序(在我的例子中是java应用程序)可以打开到该机器的最大TCP连接数是多少。 最佳答案 请注意,通常您可能会受到客户端计算机支持的出站连接数的限制,而不是可能的并发连接数。看这个SocketBindError了解如何调整MAX_USER_PORT以启用来自运行测试的机器的更多出站连接。 关于windows-最大并发TCP/IP连接数-WinXPSP3,我们在StackO

c++ - 如何阻止选定的应用程序访问互联网(C++、Win32)

我想要一个正在运行的应用程序或服务,在某个时间表上,可以禁止除特定应用程序之外的所有应用程序访问互联网。我正在尝试创建一个可以在程序控制下打开或关闭的过滤器。不仅仅是IP地址和端口,我还希望能够阻止特定的应用程序,就像ZoneAlarm和其他软件防火墙让您阻止一样。例如,iexplore.exe、skype.exe、firefox.exe、aim.exe。但仍需要允许其他应用程序根据需要进行连接。它必须在Vista和XP上工作,但我希望在每个平台上该方法会有所不同。基本上,过滤器必须将网络通信连接回发出请求的可执行文件,然后允许或拒绝它。更新:至少在Vista上,看起来我想在ALEla