c++控制台套接字编程和MFC中的套接字函数为什么不同?

在c++中,创建网络通信套字一般调用的函数都是socketbind(),listen(),connect(),等等,但是在MFC中创建网络套接字的函数完全变了,比如控制台... 在c++中 ,创建网络通信套字 一般调用的函数都是socket bind(),listen(),connect(),等等,但是在MFC中创建网 络套接字的函数完全变了,比如控制台程序中 ,用socket开始取得一个套接字描述符,在MFC中用Create开始,还有listen变成了Listen,其他的函数都变了,为什么这些函数要全部变形?为什么不可以直接用winsock2.h中的那些函数,非要重新生成一些类似的函数,程序员多难记忆啊,求解答! 展开
 我来答
longinus_dean
2011-10-31 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1529万
展开全部
这个,首先c++是没有这些函数的,为什么可以用这些函数呢,是因为系统、或者说平台、或者说一些程序开发库提供这些,MFC就是一种这样的开发库。

你可以用socket函数是因为windows或者linux或者其他操作系统提供这些函数而已,并不是c++提供这些函数,这个首先要明确。

明确这个之后这个问题就简单的,你遇到的什么bind,listen是windows sdk(就是Windows最基本,最底层的开发库)提供的函数,MFC实际上是对windows sdk的抽象,也就是将windows sdk的各种函数功能制作成类,供你使用,这样自然必须不同了,相同不就冲突了吗。

以后你还会遇到各种开发库,例如QT,Wxwidgets,GTK,Boost,这些库都有各自的网络通信函数、方法,可能和你遇到的完全不同。不过程序员重要的是能理解这些东西的思想,具体要用的时候去学,去查就好了。你以为有人能背诵MSDN里面的每个函数吗?只是需要的时候去查而已。
为胡是0u
2011-10-31 · TA获得超过106个赞
知道答主
回答量:36
采纳率:0%
帮助的人:56.9万
展开全部
感觉你应该是懂得API的Socket操作的,MFC是封装了api的一个类,所以从外形上看肯定会不一样的,有一些必须的操作MFC直接给你打包成一个函数,你直接调用就可以,MFC封装的Socket我一直没去用,都是直接用的api,其实你如果用不习惯MFC的可以完全不去管他,以前怎样操作的在MFC下也那样去操作就可以了,而且如果你是初学,我强烈建议你先不要用MFC类库去直接操作,这样不便于你了解他的运行原理。用一些老程序员的话说,MFC是微软想把程序员变成不动脑的傻子。
而且,很多函数是不需要你记住的,我相信再优秀再优秀的程序员也不可能记住所有的函数,所以你只需要会查MSDN就可以了,只要知道有那么个函数可以实现你想要的功能并且你能在MSDN里查的到就ok了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wqesad888
2011-10-31
知道答主
回答量:69
采纳率:0%
帮助的人:33万
展开全部
谢杏芳地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七终多E
2011-10-31 · TA获得超过1.4万个赞
知道大有可为答主
回答量:3756
采纳率:46%
帮助的人:3447万
展开全部
mfc microsoft foundation class 微软基础类 重新封装过了的话应该是有些变化的话你用习惯就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式