草庐IT

windows - 如何在 Windows 7 中使用 C++ 检测哪个网络接口(interface)接收到 UDP 数据包?

我有一台带有3个以太网接口(interface)的Windows7机器。我创建了一个UDP套接字并绑定(bind)到INADDR_ANY。当套接字收到广播UDP数据包时,如何知道哪个网络接口(interface)收到了数据包?我还需要获取网络接口(interface)对应的IP地址吗? 最佳答案 查看Wireshark:https://www.wireshark.org/来自Wireshark关于他们的产品:"Wiresharkistheworld'sforemostnetworkprotocolanalyzer.Itletsyou

c++ - WINAPI RegisterApplicationRestart 不清除打开的套接字

我有一个我正在制作的游戏的服务器,我使用RegisterApplicationRestart(GetCommandLine(),0);这样当服务器由于不可预见的原因崩溃时,它会自行重启。但是,我对它如何处理我在应用程序上打开的监听器套接字有疑问。服务器代码通过一组端口号并在第一个可用端口上打开一个监听器套接字。但是,当应用程序遇到fatalerror并自行重启时,先前选择的端口上的监听器套接字不会关闭,因此每次应用程序重新启动时,使用的端口号都会增加,并且先前使用的端口变为“死”监听器,它们接受连接但与我的任何代码无关。有没有办法在应用程序自身重新启动时强制关闭那些打开的套接字?

windows - AI_FQDN 和 AI_CANONNAME 结果在 ADDRINFOW 结构中有什么区别?

关于使用GetAddrInfoW(我来自C#使用背景)。ADDRINFOW结构可以将ai_flags设置为AI_FQDN和AI_CANONNAME以便PWSTRai_canonname将包含:在DNS中注册的规范名称要么平面名称解析到的完全限定域名Windows文档:“在DNS中注册的规范名称可能与平面名称解析到的完全限定域名不同。”这两者有什么区别? 最佳答案 ai_canonname是一个输出(在c#中)参数种类。但它可以根据标志集(AI_FQDN/AI_CANONNAME).完全限定名称:您从根级别获得完整路径(例如:ru.w

c++ - Windows 套接字通知接收器

Windows套接字通知接收器有什么用?我目前正在使用MFC套接字,自从我在Windows关闭时收到此消息后,我认为我做错了什么。什么可能导致这种情况?谢谢。编辑:我目前正在处理需要通过套接字进行通信的应用程序。当我关闭计算机时,我收到一个消息框,其中有一个名为“windowssocketnotificationsink”的进度条。这就是我能说的。 最佳答案 您创建的端点未正确关闭。Windows套接字通知接收器在关闭时仍在运行,因为它认为它仍然需要管理端点。请确保您正确处理了您创建的套接字类的所有实例,以便Windows清理并知道

windows - 套接字对、perl、KEEPALIVE 和轮询

我已经开始在linux和windows上使用socketpairs来捕获两个平台上子进程的输出。我通过将STD*复制到socketpair中的一个套接字上来做到这一点(我在perl中使用Win32::SocketPairforsocketpair'sonwindows)。我这样做的主要原因是读取不会阻塞输出文件句柄。我遇到的问题是kill(0,...)在Windows上不起作用,所以我需要另一种方法来检测进程是否关闭。我查看了SO_KEEPALIVE,但这似乎不适用于socketpairs.../p>然后我开始研究套接字上的事件轮询。POLLHUP事件看起来很有希望,但我不确定它们像这

windows - 奇怪的 send() 问题(使用 Wireshark 日志)

关于这个问题我还有一个问题,但是我没有问对,所以我又来了!我通过分块发送文件。现在,我正在研究该block大小的不同数字,看看哪种大小最有效。在本地主机上测试时,任何block大小似乎都可以正常工作。但是当我通过网络测试它时,最大块大小似乎是8191字节。如果我尝试任何更高的东西,转移就会变得非常、痛苦、缓慢。为了显示发生了什么,这里是前100行Wireshark日志,当我使用8191字节的block大小时,以及当我使用8192字节的block大小时:(发送方是192.168.0.102,接收方是192.168.0.100)8191:http://pastebin.com/E7jFFY

java - 通过 Windows 用户 ID 在 Java 中进行即时消息传递?

我已经使用套接字和Swing在Java中创建了简单的即时消息应用程序。现在它通过解析作为参数传递的主机名(PC名称)或IP进行通信。但是有没有办法让它以Windows用户ID(即您登录Windows时使用的用户ID)作为参数发送消息?这似乎在C#中很容易完成,但我如何在Java中完成呢? 最佳答案 可以使用System.getProperty获取用户名:Stringname=System.getProperty("user.name"); 关于java-通过Windows用户ID在Jav

windows - 在 Windows 中,如何找出哪个进程位于本地网络套接字的另一端?

也就是说,如果我有一台监听127.0.0.1的服务器,有一个TCP连接进来,我如何确定客户端的进程id?此外,如果没有用于此的API,我可以从哪里以更hackish的方式提取信息?(这样做的目的是修改本地HTTP代理服务器以根据请求进程接受或拒绝请求。)编辑:下面palacsint的回答让我找到了thisanswertoasimilarquestion这正是我们所需要的 最佳答案 netstat-a-o打印它。我想它们在同一台机器上,因为您正在收听127.0.0.1。 关于windows

windows - 套接字在同一台 PC 上的通信是否比使用共享内存慢得多?

我有一个向外部应用程序提供视频的WindowsDLL。我的主应用程序创建每个视频帧,我使用由系统页面文件支持的全局共享内存将该帧传递给DLL。视频帧随后由外部应用程序检索并显示。我不拥有外部应用程序,只有它加载以从中获取视频的DLL。我正在考虑切换到基于套接字的方法来在我的主应用程序和DLL之间进行通信,并摆脱共享内存方法。我不喜欢看到“软页面错误”堆积如山,因为每次我向它写入新的视频帧时,我都会重复使共享内存位置无效。我相信软页面错误是无害的,只是所涉及的内存分页的副作用,但没有它我会更舒服。由于视频的传输帧速率约为每秒25帧,因此我有大约1/25秒的时间来传输帧。这些帧绝不会大于6

c - UDP客户端的Windows C套接字编程

我正在尝试为Windows套接字查找一些示例程序。特别是,我有兴趣用C(在visualstudio中)编写一个使用UDP与服务器通信的客户端。我找不到任何具体Material。我尝试了一些示例,但出现了一些链接错误。有没有可用的图书馆。请告诉我。提前致谢。 最佳答案 ApachePortableRuntime支持套接字,并且是跨平台的。 关于c-UDP客户端的WindowsC套接字编程,我们在StackOverflow上找到一个类似的问题: https://s