IOCP 中用AcceptEx时是不是有两个socket?

66i88 2017-07-24 05:31:49
IOCP 中用AcceptEx时是不是有两个socket?

一个是用来监听的,另一个是用来接收的并且接收时就可以直接接收第一部分数据?

这个用来接收的socket,一般好像是接收一个后就立即再新建一个socket并投递到队列中,

我的问题是用来接收的socket接收后可否重新初始化再投递,而不用新建一个?

谢谢。
...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2017-07-26
  • 打赏
  • 举报
回复
引用 4 楼 66i88 的回复:
[quote=引用 3 楼 worldy 的回复:] 调用AcceptEx 后,sAcceptSocket在服务器端真正的代表了链接如的客户,在后续的 WSARecv中,这个客户就是和sAcceptSocket交互,当一个链接断开后,是可以重用这个链接的,但是必须使用特殊的函数断开链接,
什么函数?[/quote] DisconnectEx
66i88 2017-07-26
  • 打赏
  • 举报
回复
引用 3 楼 worldy 的回复:
调用AcceptEx 后,sAcceptSocket在服务器端真正的代表了链接如的客户,在后续的 WSARecv中,这个客户就是和sAcceptSocket交互,当一个链接断开后,是可以重用这个链接的,但是必须使用特殊的函数断开链接,
什么函数?
worldy 2017-07-25
  • 打赏
  • 举报
回复
调用AcceptEx 后,sAcceptSocket在服务器端真正的代表了链接如的客户,在后续的 WSARecv中,这个客户就是和sAcceptSocket交互,当一个链接断开后,是可以重用这个链接的,但是必须使用特殊的函数断开链接,
oyljerry 2017-07-24
  • 打赏
  • 举报
回复
任何socket通信的框架都是这样的模式,一个侦听,然后一个跟客户端建立连接。
zgl7903 2017-07-24
  • 打赏
  • 举报
回复
是的


BOOL AcceptEx ( 
SOCKET sListenSocket,
SOCKET sAcceptSocket,
PVOID lpOutputBuffer,
DWORD dwReceiveDataLength,
DWORD dwLocalAddressLength,
DWORD dwRemoteAddressLength,
LPDWORD lpdwBytesReceived,
LPOVERLAPPED lpOverlapped
);

Parameters
sListenSocket
[in] A descriptor identifying a socket that has already been called with the listen function. A server application waits for attempts to connect on this socket.
sAcceptSocket
[in] A descriptor identifying a socket on which to accept an incoming connection. This socket must not be bound or connected.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧