MFC支持winsock2吗?

发布于 2024-09-12 14:52:12 字数 70 浏览 7 评论 0原文

我是 Visual Studio 的新手。我读到一些MFC仅支持winsock1的内容。 MFC真的不支持winsock2吗?

I'm a fresher to Visual Studio. I read some where MFC supports only winsock1. Is it true that MFC doesnt support winsock2?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的鱼塘能养鲲 2024-09-19 14:52:12

我只是引用此处

更改:

#include ;

致:

#include ;

除了能够使用之外没有任何区别
winsock2 的具体调用。你可能是
实际上使用winsock2即使你
仅包括winsock.h。这
实际的区别在于你是否
正在链接到 wsock32.lib (winsock
1.1) 或 ws2_32.lib (winsock 2.2)。正如我指出的,你必须使用它。简单地
通过更改头文件或
你所链接的 lib 不会使
任何形式的性能差异,
效率,无论如何。其实你可能
与操作系统的兼容性松散
支持纯 BSD 套接字调用
不使用时更改为 ws2。

Winsock2 的出现是为了提高性能。这
IO 由 Windows 内核管理(例如
例如重叠的 io)。你所有的
winsock 1.1,例如基本的发送/接收
调用直接映射到
对应的winsock 2.2
(WSASend/WSARecv).winsock2 纯粹是
向下兼容winsock。

I am just quoting from here.

Changing:

#include <winsock.h>

To:

#include <winsock2.h>

doesn't make any difference other than able to use the
winsock2 specific calls. You may be
actually using winsock2 even if you
are including only winsock.h. The
actual difference is made whether you
are linking to wsock32.lib (winsock
1.1) or ws2_32.lib (winsock 2.2). As I pointed out you have to use it. Simply
by changing the header files or the
lib where you are linked doesn't make
any sort of difference in performace,
efficiency, whatever. Actually you may
loose compatibility with os that
supports pure BSD socket calls when
changing to ws2 while not using it.

Winsock2 came in for performace. The
IO is managed by windows kernal (like
overlapped io for instance). All your
winsock 1.1 such as basic send/recv
calls are directly mapped to the
winsock 2.2 counterpart
(WSASend/WSARecv).winsock2 is purely
downward compatibe with winsock.

波浪屿的海角声 2024-09-19 14:52:12

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

您应该在 VS 安装中拥有源代码 - 您将在 stdafx.h 中看到它包括 Winsock.h (不是 2),并且在 sockcore.cpp 中有初始化 1.1 的代码。 VS2010的MFC也是一样。

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

Oddly yes it looks like it only uses 1.1.

You should have the source code with your VS install - you'll see in stdafx.h it includes winsock.h (not 2) and in sockcore.cpp there's code to initialise 1.1. VS2010's MFC is the same.

If you want to use winsock2 in your own code you'll have to include header before the MFC header in your project's stdafx.h so the declarations don't clash. Hopefully that won't break the AfxSocket interface though :-/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文