- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
<分区>
以下是使用 WSAPoll 所需的最少代码,不包括初始化(socket()
、bind()
、listen()
, accept()
等)或它之前的任何条件。您可以使用 sample server code来自文档,sock
将以 ClientSocket
为基础。
运行它,每行的值按如下方式变化:
// ...
// socket(), bind(), listen(), etc.
// sock = accept(...)
// See boilerplate linked.
SOCKET sock; // sock = 356
FDSET set; // Some garbled data, though should be same as below:
FD_ZERO(&set); // fd_count = 0, fd_array = [14757395258967641292, x64]
FD_SET(sock, &set); // fd_count = 1, fd_array = [356, 14757395258967641292 x63]
int iResult = WSAPoll(&set, 1, 1) // iResult = -1
// fd_count = 1, fd_array = [262500, 14757395258967641292 x63]
int errid = WSAGetLastError(); // errid = WSAENOTSOCK (10038)
// if (iResult > 0)
// recv(), etc.
如果我没看错的话,WSAPoll()
应该模仿 poll()
.因此,当我将 sock
存储到 set
中时,它会正确存储它,但是当它被传递到 WSAPoll()
中时,值会发生变化并且它返回 -1,errno
为 WSAENOTSOCK
(10038)。
现在,这里的问题是 sock
是一个完全有效的文件描述符; socket 。 recv()
和 send()
工作正常,没有任何错误。
另一方面,文件描述符 262500
,没那么多。
我是在正确轮询还是在某种程度上没有正确转换它,因为它看起来不需要转换,因为 SOCKET
和 fd_array
只是一个/unsigned __int64
(s) 的单数/数组。
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我有一些要移植到 Windows (WinSocks 2.2) 的 POSIXC 代码,但我遇到了 MS 问题实现(不仅)poll()。 我对 POSIX sockets 有一些经验,但我对 WinS
对于 D 中的套接字编程,是否有等价于 poll() (或 Windows 上的 WSAPoll() )?我希望编写一个小型单线程服务器。 我知道从技术上讲你可以从 D 调用 C 函数,因此整个 Wi
我正在为我的项目使用 WSAPoll。我使用跟踪 POLLIN 和 POLLOUT 事件。一切都很好。当我添加 POLLHUP 作为事件时,WSAPoll 返回错误 10022(无效参数)。 我不知道
我是一名优秀的程序员,十分优秀!