c++控制台套接字编程和MFC中的套接字函数为什么不同?
在c++中,创建网络通信套字一般调用的函数都是socketbind(),listen(),connect(),等等,但是在MFC中创建网络套接字的函数完全变了,比如控制台...
在c++中 ,创建网络通信套字 一般调用的函数都是socket bind(),listen(),connect(),等等,但是在MFC中创建网 络套接字的函数完全变了,比如控制台程序中 ,用socket开始取得一个套接字描述符,在MFC中用Create开始,还有listen变成了Listen,其他的函数都变了,为什么这些函数要全部变形?为什么不可以直接用winsock2.h中的那些函数,非要重新生成一些类似的函数,程序员多难记忆啊,求解答!
展开
展开全部
这个,首先c++是没有这些函数的,为什么可以用这些函数呢,是因为系统、或者说平台、或者说一些程序开发库提供这些,MFC就是一种这样的开发库。
你可以用socket函数是因为windows或者linux或者其他操作系统提供这些函数而已,并不是c++提供这些函数,这个首先要明确。
明确这个之后这个问题就简单的,你遇到的什么bind,listen是windows sdk(就是Windows最基本,最底层的开发库)提供的函数,MFC实际上是对windows sdk的抽象,也就是将windows sdk的各种函数功能制作成类,供你使用,这样自然必须不同了,相同不就冲突了吗。
以后你还会遇到各种开发库,例如QT,Wxwidgets,GTK,Boost,这些库都有各自的网络通信函数、方法,可能和你遇到的完全不同。不过程序员重要的是能理解这些东西的思想,具体要用的时候去学,去查就好了。你以为有人能背诵MSDN里面的每个函数吗?只是需要的时候去查而已。
你可以用socket函数是因为windows或者linux或者其他操作系统提供这些函数而已,并不是c++提供这些函数,这个首先要明确。
明确这个之后这个问题就简单的,你遇到的什么bind,listen是windows sdk(就是Windows最基本,最底层的开发库)提供的函数,MFC实际上是对windows sdk的抽象,也就是将windows sdk的各种函数功能制作成类,供你使用,这样自然必须不同了,相同不就冲突了吗。
以后你还会遇到各种开发库,例如QT,Wxwidgets,GTK,Boost,这些库都有各自的网络通信函数、方法,可能和你遇到的完全不同。不过程序员重要的是能理解这些东西的思想,具体要用的时候去学,去查就好了。你以为有人能背诵MSDN里面的每个函数吗?只是需要的时候去查而已。
展开全部
感觉你应该是懂得API的Socket操作的,MFC是封装了api的一个类,所以从外形上看肯定会不一样的,有一些必须的操作MFC直接给你打包成一个函数,你直接调用就可以,MFC封装的Socket我一直没去用,都是直接用的api,其实你如果用不习惯MFC的可以完全不去管他,以前怎样操作的在MFC下也那样去操作就可以了,而且如果你是初学,我强烈建议你先不要用MFC类库去直接操作,这样不便于你了解他的运行原理。用一些老程序员的话说,MFC是微软想把程序员变成不动脑的傻子。
而且,很多函数是不需要你记住的,我相信再优秀再优秀的程序员也不可能记住所有的函数,所以你只需要会查MSDN就可以了,只要知道有那么个函数可以实现你想要的功能并且你能在MSDN里查的到就ok了
而且,很多函数是不需要你记住的,我相信再优秀再优秀的程序员也不可能记住所有的函数,所以你只需要会查MSDN就可以了,只要知道有那么个函数可以实现你想要的功能并且你能在MSDN里查的到就ok了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mfc microsoft foundation class 微软基础类 重新封装过了的话应该是有些变化的话你用习惯就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询