WinSock的MS文档说你无法获得为socket设置的超时:
下表列出了代表BSD的optname的值 getsockopt函数不支持的套接字选项 ...
SO_RCVTIMEO int接收超时。 ...
但我注意到可爱的.Net有这个选项:
因此在本机代码中有一些难看的方法。 ?
答案 0 :(得分:2)
.NET设计不基于Windows实施限制。这里没有什么魔力,无论如何都试图使用它只会抛出一个SocketException,“在getsockopt或setsockopt调用中指定了一个未知,无效或不支持的选项或级别”。直接来自Windows的消息,WSAENOPROTOOPT winapi错误代码。但是,当您的程序在支持该选项的Linux,Apple或移动操作系统上运行时,不会。
所以不,它有选项的事实并不保证它会起作用。
答案 1 :(得分:-1)
我找到的第一个MSDN documentation表示支持 。二十年前我在Windows中使用它。你的第一个(未被发现的)来源严重错误。