有人知道WinSock.h和WinSock2.h之间的区别吗?我知道它们不使用相同的库(.lib),但我不知道WinSock2是否只增加了新功能,或者它是否也改进了WinSock 1的功能。我正在使用IP/TCP套接字,并希望使用select()管理超时。我还使用多个线程同时管理多个客户端。我应该继续使用WinSock 1.1还是应该迁移到WinSock 2?提前谢谢。
发布于 2012-12-31 04:50:20
您可能应该使用winsock2.h。
几点:
winsock.h应该与ws2_32.libwinsock.h一起使用,it.winsock.h应该与wsock32.lib一起使用,winsock2.h应该与winsock2.h一起使用,winsock2.h不应该在同一项目中一起使用,winsock.h将替换winsock.h,而不是扩展。只有当您的目标是Windows95/ Windows NT 3.5时,才应该使用it.winsock.h。微软的实现
Winsock1.1Winsock1.1版 (winsock.h)是在工作组(代号为Snowball)的Windows的附加软件包(称为Wolverine)中提供的。从3.5版和更高版本开始,它是Windows 95和Windows NT不可或缺的组件( Windows NT最初的商业版本3.1,仅包括基于AT&T UNIX System V "Streams“API的TCP/IP的专有且相当不完整的实现。
Winsock的2.1版 (winsock2.h)是在Windows95的附加软件包中提供的。它是Windows 98、Windows NT 4.0和所有后续Windows版本不可或缺的组件。Winsock 2.x的最新版本已随新的Windows版本一起提供,或作为service packs的一部分提供。
Winsock2增加功能了吗?
Winsock 2可通过一种称为分层服务提供者(LSP)的机制进行扩展。Winsock LSP可用于广泛的有用目的,包括互联网父母控制,网页内容过滤,QoS等。
发布于 2012-12-31 04:46:40
Winsock.h的存在是为了保持在16位版本的Windows中开始的代码编译。您应该始终使用Winsock2.h并在新项目中链接到ws2_32.lib。
https://stackoverflow.com/questions/14094457
复制相似问题