有谁知道WinSock.h和WinSock2.h之间的区别。 我知道他们不使用相同的库(.lib),但我不知道如果WinSock2只增加了新的function,或者如果它也提高了WinSock 1function。 我正在使用IP / TCP套接字,并想用select()来pipe理超时。 我也使用多个线程同时pipe理多个客户端。 我应该继续使用WinSock 1.1还是移动到WinSock 2? 提前致谢。
你应该使用winsock2.h
。
几点:
winsock.h
应与wsock32.lib
一起使用, ws2_32.lib
应与ws2_32.lib
一起使用 winsock.h
和winsock.h
不应该在同一个项目中, winsock.h
替换winsock.h
而不是扩展它。 winsock.h
应该只用于如Windows 95 / Windows NT 3.5的老版本的Windows。 Winsock的版本1.1 ( winsock.h
)是在Windows for Workgroups(代号为Snowball)的附加软件包(称为Wolverine)中提供的。 它是从版本3.5及以上的Windows 95和Windows NT不可或缺的组成部分(最初商用版本的Windows NT,版本3.1,仅包含基于AT&T UNIX系统V的TCP / IP的专有且相当不完整的实现“Streams “API。
Winsock的版本2.1 ( winsock2.h
)在Windows 95的附加软件包中提供。它是Windows 98,Windows NT 4.0和所有后续Windows版本的组成部分。 Winsock 2.x的最新版本已经与新的Windows版本一起提供,或作为服务包的一部分提供。
Winsock 2可以通过称为分层服务提供程序(LSP)的机制进行扩展。 Winsock LSP可用于广泛的用途,包括互联网家长控制,网页内容过滤,QoS等。
Winsock.h是在那里保持代码编译,在16位版本的Windows中开始生活。 您应该始终使用Winsock2.h并链接到新项目中的ws2_32.lib。