MFC是否支持winsock2?

时间:2010-08-02 11:10:47

标签: visual-studio-2008 mfc winsock2

我对Visual Studio更新鲜。我读了一些MFC仅支持winsock1的地方。 MFC不支持winsock2是真的吗?

2 个答案:

答案 0 :(得分:1)

奇怪的是,看起来它只使用1.1。

您应该在VS安装中获得源代码 - 您将在stdafx.h中看到它包含winsock.h(不是2),而在sockcore.cpp中则包含初始化1.1的代码。 VS2010的MFC是一样的。

如果要在自己的代码中使用winsock2,则必须在项目的stdafx.h中的MFC头之前包含头,这样声明不会发生冲突。希望这不会破坏AfxSocket接口: - /

答案 1 :(得分:1)

我刚引用here

  

改变:

#include <winsock.h>
     

致:

#include <winsock2.h>
     

除了能够使用之外没有任何区别   winsock2特定的电话。你可能   实际上即使你使用winsock2   仅包括winsock.h。该   无论你是否真实存在差异   正在链接到wsock32.lib(winsock   1.1)或ws2_32.lib(winsock 2.2)。正如我所指出的,你必须使用它。只是   通过更改头文件或   你链接的lib没有   绩效的任何差异,   效率,无论如何。其实你可以   松散与OS的兼容性   支持纯BSD套接字调用时   在不使用它的情况下更改为ws2。

     

Winsock2进入表演。该   IO由windows kernal管理(如   例如,重叠io)。你的全部   winsock 1.1等基本发送/接收   调用直接映射到   winsock 2.2对应   (WSASend / WSARecv).winsock2纯粹是   与winsock向下兼容。