簡體   English   中英

選擇拋出錯誤WSAENOTSOCK

[英]Select throwing error WSAENOTSOCK

我面對的問題 :-

當在Win7 Home premium上使用包含IPv6和IPv4套接字的FD_SET集進行調用時,Select(..)API會引發錯誤,但是同一應用程序在其他win7計算機上運行良好。 但是,如果我在FD_SET中僅使用IPv6或IPv4套接字,那么它將運行良好。 所以我認為,系統同時支持IPv6和IPv4。

我嘗試通過下面的鏈接使用服務器:-

http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms738639%28v=vs.85%29.aspx

即使這個樣本也是來自select調用的相同錯誤。

任何人都可以幫助我了解此錯誤的原因並解決此問題。

謝謝!!!

不幸的是,Windows不允許在同一調用select混合使用來自不同提供程序的套接字。 這是因為允許每個提供程序實現其自己的select處理程序。

fd_set結構中包含的套接字必須與單個服務提供者關聯。 - 選擇功能

Windows將選擇一個提供程序以將select發送給該提供程序(我相信集合中第一個套接字的提供程序),並且該提供程序將無法識別其他提供程序的套接字。 老實說,您無論如何都不應該使用select ,它只是為了與BSD套接字接口兼容而提供的。 絕對不是“ Windows方式”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM