问题标签 [winsockets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 C++ 中进行网络 IP 扫描?
我正在试验 C++ winsockets。我想创建一种方法,在不知道它的 IP 的情况下,我可以在网络上找到服务器。为此,我只需通过 IP 地址 192.168.1.0 到 192.168.1.255 循环我的连接方法。但是,每次连接之间的时间相当长,程序倾向于在 connect(nBytes, (sockaddr*)&server, sizeof(server)) 语句处等待至少 30 秒,如果不是更长的话。我的问题如下:为什么会发生这种情况,我该如何解决这个问题,是否有完全不同的更好的方法来查找服务器?
我的连接方法:
另外,请随时告诉我我在当前连接方法中做错的任何事情。
c++ - 计算从客户端发送到服务器的数据包数量?
所以我几乎完成了一项涉及 Win32 编程和套接字的任务,但我必须生成和分析一些有关传输的统计信息。我唯一遇到的问题是如何计算从客户端发送到服务器的数据包数量。
发送的数据可以是可变长度的,所以我不能只将接收到的总字节数除以#define'd 值。
我们必须使用异步调用来做所有事情,所以我一直在尝试用我为服务器套接字获得的每条 FD_READ 消息增加一个计数器。但是,因为我必须能够接受可能很大的文件大小,所以我必须使用大约 64k 的缓冲区大小调用 recv/recvfrom。如果我发送一个小数据包(az),则没有问题。但是,如果我发送 1024 个字符的字符串 10 倍,服务器会报告收到 2 或 3 个数据包,但就发送/接收的字节而言,数据丢失率为 0%。
知道如何获取数据包的数量吗?
提前致谢 :)
sockets - “Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinSock2”中是否有宽字符版本的 WSABUF 结构
winsock 中是否有宽字符版本的 WSABUF 结构?
我想在套接字上写日语数据。
delphi - 将 TServerSocket 应用程序从 D5 转移到 D2007 的任何陷阱?
我在谷歌上做了一个简短的搜索,什么也没找到,但我觉得我应该问一下。我并不真的期望会有什么,但宁愿现在问一个没有答案的问题,也不愿在一切都出错时问这个问题,发现每个人都知道一个“陷阱”......!
为了使整体支持/开发生活更轻松(并引入 madExcept 等),我将采用 D5 编写的半 GUI 应用程序(使用 NativeDB 连接到 ASA6)并将其移植到 D2007,最终将其转进入控制台应用程序和/或服务。(目前的 GUI 只不过是一个美化的开始/停止按钮和一个活动日志)。
它是一个经典的 TServerSocket 应用程序,监听指定的端口并在客户端连接时执行各种操作。我预计 NativeDB 方面不会出现任何大问题,但我想知道就 TServerSocket 而言,D5 和 D2007 之间是否有任何变化(错误修复、改进)?
我们不使用阻塞套接字、Indy 等——它只是来自 scktcomp 单元的 TServerSocket,直接来自 D5 Enterprise 框。除非 D2007 下的 TServerSocket 有问题,否则我不打算显着更改代码。:-)
java - 追捕 java.net.SocketException:没有可用的缓冲区空间
嗨,我有一个非常丑陋的问题:java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?)它是客户端-服务器应用程序。客户端是 Windows XP SP2 32b,带有两个网卡核心双核。Java 1.6。u7。应用程序为本地通信打开了几个服务器套接字,并为 rmi 到 jboss 服务器打开了几个客户端套接字。
几个小时/几天后!我无法打开任何新的客户端套接字来与服务器进行通信。服务器套接字仍然有效。
Windows netstat 显示从 130 到 150 的连接。手动尝试时,我在 ~3500 个连接后耗尽了缓冲区!
我试过了:
重新启动 java 后,我就可以打开新连接。
整个例外:
--edited
我们终于解决了 snmp 服务器故障的问题。我在下面的评论中写下了我的笔记。感谢帮助。
c++ - C++ Winsock P2P
Scenario
Does anyone have any good examples of peer-to-peer (p2p) networking in C++ using Winsock? It's a requirement I have for a client who specifically needs to use this technology (god knows why). I need to determine whether this is feasible.
Any help would be greatly appreciated.
EDIT
And I would like to avoid using libraries so that I can understand the underlying source code and further my knoweldge.
c++ - 通过 tcp 传输的文件末尾的额外换行符
我有两个程序,recvfile.py 和 sendfile.cpp。它们可以工作,只是我在新文件的末尾有一堆额外的换行符。我不知道额外的空间是如何到达那里的。我知道问题出在发件人方面,因为当我使用 python 的 sendall() 函数发送文件时不会发生同样的情况。
以下是文件:
jmm_sockets.c
发送文件.cpp:
最后,recvfile.py:
networking - 使用winsock扫描局域网游戏服务器
我正在尝试弄清楚如何使用 winsockets 将我的游戏变成 LAN 可玩游戏。我已经阅读了一些 winsockets 文档,但我无法弄清楚客户端如何获取在 LAN 上创建的所有游戏。
它是否必须尝试“连接”到 LAN 上的每个 IP,例如尝试连接到 192.168.0.1,然后是 192.168.0.2 等?有没有更好的办法?
c++ - 在 MFC 应用程序中未调用重叠的 WSARecv() 回调
我有一个 COM 组件,用 C++ 和 ATL 实现,它使用重叠的套接字 I/O。与服务器建立连接后,它立即开始对套接字进行重叠读取,代码如下:
我有一个看起来像这样的回调函数:
此 COM 组件在单元测试中、在命令行应用程序中使用时以及在 .NET GUI 应用程序中使用时(通过 COM 互操作)都可以正常工作。但是,当我在 MFC 应用程序中使用此组件RecvCallback
时,服务器向其发送数据时永远不会调用该组件。
WSARecv()
ReturnsSOCKET_ERROR
和WSAGetLastError()
Returns WSA_IO_PENDING
,正如异步重叠读取所期望的那样。
当我使用 SysInternals TcpView 应用程序观察正在发生的事情时,它表明客户端正在接收数据。但是永远不会调用回调。
通过连接的套接字向服务器发送数据工作正常。
我正在调用CoInitializeEx()
并WSAStartup()
在我的 MFC 应用程序的InitInstance()
方法中。
有任何想法吗?
visual-c++ - 如何从 MFC (VC++) 中的给定 IP 获取域名?
如何从 MFC (VC++) 中的给定 IP 获取域名?我正在使用的代码如下:
此代码返回我的主机名 = 255.255.255.255 而不是域名。