gpt4 book ai didi

c++ - DLL 中的非阻塞套接字(无窗口)

转载 作者:可可西里 更新时间:2023-11-01 11:10:46 28 4
gpt4 key购买 nike

我有一个通过单个套接字连接到服务器的 DLL。我面临以下问题:如果服务器的 IP 地址和端口为假或服务器已关闭,则使用此 DLL 的应用程序会卡住半分钟。我的想法是使用非阻塞套接字来避免该问题,方法是显示一个指示连接进度的窗口,并允许取消此过程。但是我没有窗口处理程序,怎么能使用 WSAAsyncSelect 函数呢?

最佳答案

如果你想使用 WSAAsyncSelect 类型的套接字,那么你的 Dll 将需要创建至少一个消息窗口来处理套接字事件。由于窗口将永远不可见,因此它的 WindowProc 将仅包含一个处理程序,用于您的自定义消息 (WM_USER+1),可能是您传递给 WSAAsyncSelect 的 - 其他一切都直接进入 DefWindowProc。

无论如何,您都必须在连接时创建一个无模式的进度窗口以显示您的连接 UI。

关于c++ - DLL 中的非阻塞套接字(无窗口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1790284/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com