问题标签 [winsock]
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++)
我正在尝试实现一个名为“inet_pton”的函数,它将 IPv4 或 IPv6 的字符串表示(如“66.102.1.147”[google])转换为二进制网络字节有序形式。这是我的代码的相关部分:
所以 src 是传入的 IP 字符串。但是,我总是收到类似的错误
getaddrinfo() 无法获取“66.102.1.147”的 IP 地址信息
有winsock经验的人可以评论吗?我还尝试了另一种方法,函数
但它总是返回错误代码 WSAEINVAL,表示 IP 字符串无效。这对我来说毫无意义。我使用 VS2005 作为我的 IDE。
c++ - 如何使用win32编写socket通信程序
新手想学习win32中的socket编程。我知道一点 MFC 但这不是开始的好点,因为它只是隐藏了程序员的内部细节。
winsock - Winsock 上的实用通用组播
有没有人在 Windows 上使用 Winsock(不是 MSMQ)级别的 PGM 的经验?它看起来像一个有用的可靠多播协议(la TIBCO Rendezvous),我认为如果在基于本地完成端口的 I/O 上运行,它可以使这样的东西真正飞起来。
我已经在 C++ 级别上涉足它,通过编写一些 boost::asio 支持并通过 SocketAsyncEventArgs 在 C# 中运行它,但可惜我微薄的家庭办公室设置缺乏真正的 LAN 来正确测试它,我想知道是否有人花时间在上面并有任何观察?
delphi - Delphi,如何获取所有本地IP?
任何人都知道在delphi 中获取本地IP 地址的简单列表(例如tstrings)的方法。
我已经查看了其他相关问题,但似乎无法将它们转换为 delphi。
c++ - send(),返回 Winsock 错误 10038
问题:
- 调用send() ,针对套接字句柄返回 Winsock 错误10038
插图:
- 接受(),返回0
- 为每个连接创建一个新线程
- send(),(在线程函数中)返回10038
说明: - 在线程函数中
建议:
- 可能,比赛条件?
- 可以使用 I/O 完成端口,但现阶段不能
c++ - 计算从客户端发送到服务器的数据包数量?
所以我几乎完成了一项涉及 Win32 编程和套接字的任务,但我必须生成和分析一些有关传输的统计信息。我唯一遇到的问题是如何计算从客户端发送到服务器的数据包数量。
发送的数据可以是可变长度的,所以我不能只将接收到的总字节数除以#define'd 值。
我们必须使用异步调用来做所有事情,所以我一直在尝试用我为服务器套接字获得的每条 FD_READ 消息增加一个计数器。但是,因为我必须能够接受可能很大的文件大小,所以我必须使用大约 64k 的缓冲区大小调用 recv/recvfrom。如果我发送一个小数据包(az),则没有问题。但是,如果我发送 1024 个字符的字符串 10 倍,服务器会报告收到 2 或 3 个数据包,但就发送/接收的字节而言,数据丢失率为 0%。
知道如何获取数据包的数量吗?
提前致谢 :)
c++ - 如何应对高频数据?
我有一个 C++ 应用程序,它接收股票数据并通过套接字(充当服务器)转发到另一个应用程序。
实际上,该WSASend
函数在几秒钟后返回错误代码 10055,我发现这是错误消息
“没有可用的缓冲区空间。无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满”。
仅当我在市场交易时间后运行应用程序时才会出现问题,因为我们在几分钟内收到全天数据(大约 130 MB)(我假设这相对较大)我这样做是为了进行稳健性测试。
我尝试使用setsockopt
函数增加发送缓冲区 SO_SNDBUF 但同样的问题仍然存在。我怎么解决这个问题?这与接收缓冲区有关吗?
发送详情:
对于每条完整的消息,我调用使用重叠套接字的发送方法
编辑:有人可以给出在 C++ 中处理高频数据的一般准则吗?
sockets - 进程之间的套接字传递
有没有办法在 Windows 中的进程(不同的地址空间)之间传递套接字?
我找到了这个信息Shared Sockets,因此相信这是可能的。
"引入了 WSADuplicateSocket 函数来实现跨进程的套接字共享"...
更多信息:在 Apache 的源代码 (httpd-2.2.11-win32-src.zip) 中使用了带有注释的 api WSADuplicateSocket。
[编辑] 最近我发现这个关于这个问题的很好的样本。
在非托管世界中如何进行复制 - 套接字复制 - 第 1 部分
是否可以从非托管进程传输套接字?- 套接字复制 - 第 2 部分
c++ - 在winsock中重用向量作为数组的更有效方法?
我目前正在使用向量作为 c 样式的数组来通过 Winsock 发送和接收数据。
我有一个 std::vector ,我将它用作我的“字节数组”。
问题是,我使用了两个向量,一个用于每个发送,一个用于每个接收,但我正在做的似乎相当低效。
例子:
SendData 只是调用 send 适当的次数,并确保一切正常。
反正。除非我在每次使用之前将向量归零,否则我会收到内容重叠的错误。有没有更有效的方法让我做我正在做的事情?因为似乎在每次调用时将整个缓冲区归零是非常低效的。
谢谢。
sockets - “Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinSock2”中是否有宽字符版本的 WSABUF 结构
winsock 中是否有宽字符版本的 WSABUF 结构?
我想在套接字上写日语数据。