在windows下,如何用纯C语言实现socket网络编程?

 我来答
ysdoc
推荐于2018-01-23 · TA获得超过746个赞
知道小有建树答主
回答量:586
采纳率:60%
帮助的人:401万
展开全部
mfc只是对socket进行了一些封装,大部分人做网络编程都是用的原始的socket,比如如下接口都可以在c下进行调用
1.socket()
2.bind()
3.connect()
4.listen()
5.accept()
6.send() 和recv()
7.sendto() 和recvfrom()
8.close() 和shutdown()
9.getpeername()
10.gethostname()
这些接口是在Winsock2.h中定义的不是在mfc中定义的,你只需要包含Winsock2.h头文件和Ws2_32.lib库就可以了。
海狮2D
2012-07-25 · TA获得超过3019个赞
知道大有可为答主
回答量:1904
采纳率:55%
帮助的人:994万
展开全部
我觉得是你的概念不清:

1、什么是纯C?
Windows下的纯C,我还没有见过。很多都和posix的要求不一致。

2、要是说使用C语言接口,就很简单,Windows API基本上都是C语言兼容接口。
直接使用就可以了。

纯C基本上是理论模型,没办法用。VC、GCC等都是C语言的方言。
更多追问追答
追问
朋友,我说的是ansi c哈。
追答
你可以只是用ansi C,但是ansi C里面就没有网络模型。
ansi C里面的很多东西都无法真正和很多操作系统结合,类似的包括C89、C99、C11。

为什么不可能是标准C。
我们可以说一个C语言编译器可以编译符合XX标准的C语言程序。但是很少说一个纯C编译器。
比如,C程序里面和硬件打交道很多,大多数C编译器都提供了访问寄存器的方法,可是由于C语言能够运行的平台太多,每种平台的汇编语言又千差万别。C语言标准怎么制定?
你所说的Windows平台本身又不是一个严格的C语言平台。你比如,你可以打开一些头文件比如stdio.h,你应该可以看到类似__stdcall或者__cdecl的字样,这些就是Windows方言特有的东西之一,因为Windows的压栈方式和标准C不一样,标准C使用__cdecl(如果是纯C环境,这个关键字多余),而Windows使用__stdcall(Windows API大多数都是),这种方式在X86的CPU上快一些,但是很多其他类型的CPU不能很好支持。
类似的,有很多Windows特有的语法成分,没有这些成分,仅仅是一个printf都可能无法运行。

综上Windows系统本身依赖于非标准的C语言,而不同的支持Windows的编译器还要再引入一些非标准的语法成分。所以在纯Windows系统下(不是Cygwin或者UNIX兼容层下),没有办法使用"纯C"来完成和操作系统的交互。其实如果是真正纯C的系统,那所有的include都可以不要,自己照着C语言手册输入相应的声明就可以了,但这种系统不实用。

我原来学习的时候就总是觉得计算机是一个3型自动机,不是图灵机。因为图灵机具有无限存储空间,而实际的计算机只可能存在有限的存储空间。如果严格的按照计算理论来推论,计算机充其量是一个3型自动机。但是有人说,你可以写一个程序,当硬盘满了提示更换硬盘,需要前面的那一块,就告诉需要那一块硬盘,这样当然存储空间就大了许多。而且硬盘不够还可以生产,这样算起来也可以称作无限,因为具有动态发展的可能。

其实,实际问题和理论模型往往存在着差异,不要拿着一个固定的模型去套用实际的东西,你有很多问题想不到。要考虑实际问题和模型的差异,以及这些差异存在的必要性。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oyms1988
2012-07-25 · TA获得超过1109个赞
知道小有建树答主
回答量:288
采纳率:100%
帮助的人:174万
展开全部
那你要自己实现TCP/IP协议??
追问
不是。只要用C语言都行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
byzxybd
2012-07-26 · TA获得超过455个赞
知道小有建树答主
回答量:731
采纳率:100%
帮助的人:423万
展开全部
使用 vc 吧。是不是纯很重要吗??????
追问
用什么库,C语言支持么?
追答
ysdoc

回答的都是VC的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式