标准 C 中没有定义与网络相关的内容,因此讨论“网络用C怎么弄”是没有意义的。
网络功能大多是由操作系统以 API 的形式提供,因此需要了解你所选用的操作系统平台,是否有提供网络功能的 API,然后熟悉其调用接口。
如果所选用的操作系统没有提供网络功能,则需要了解是否有厂商提供网络功能的库,可以购买,或者在网上找找是否有开源的库可用。
如果以上的方法都不行的话,只能考虑自己去实现一套网络功能库。
如果是自己实现,就要了解你所选用的硬件平台,网络功能是采用的什么芯片,可以从芯片厂商获得技术支持,包括 DataSheet 和参考代码。
网络协议栈的话,在物理层以上,基本上都是纯算法的东西,都是可以采用 ANSI C 来实现,网络上也有许多开源的网络协议栈代码。多数情况下,物理层的代码都要根据所选用的芯片自己实现。
因此说,在做开发时,对平台的选择和理解都是极为重要的。
不过,从你说的第一句话开始,我就知道你还是一个菜鸟。有的时候真不想跟菜鸟多费口舌,因为一些问题的讨论实在是没有多大意义。
不过呢,还是给你说上几句,希望更加努力啊。
另外提一句,在程序实现上尽量少说“是不可能的”,当你觉得一个功能的实现是不可能的时候,你就失去了动力。一个功能的实现,没有什么不可能,只是自己是否有能力去实现,以及是否值得去实现。在工程上,由于开发周期等的限制,一些功能是不值得花费大量的时间和精力去实现的。然而,在研究领域,在个人学习时,许多功能都是值得我们去实现的。
我坚信别人能实现的,我也能实现。而别人没有实现的,我们同样要实现。
网络功能大多是由操作系统以 API 的形式提供,因此需要了解你所选用的操作系统平台,是否有提供网络功能的 API,然后熟悉其调用接口。
如果所选用的操作系统没有提供网络功能,则需要了解是否有厂商提供网络功能的库,可以购买,或者在网上找找是否有开源的库可用。
如果以上的方法都不行的话,只能考虑自己去实现一套网络功能库。
如果是自己实现,就要了解你所选用的硬件平台,网络功能是采用的什么芯片,可以从芯片厂商获得技术支持,包括 DataSheet 和参考代码。
网络协议栈的话,在物理层以上,基本上都是纯算法的东西,都是可以采用 ANSI C 来实现,网络上也有许多开源的网络协议栈代码。多数情况下,物理层的代码都要根据所选用的芯片自己实现。
因此说,在做开发时,对平台的选择和理解都是极为重要的。
不过,从你说的第一句话开始,我就知道你还是一个菜鸟。有的时候真不想跟菜鸟多费口舌,因为一些问题的讨论实在是没有多大意义。
不过呢,还是给你说上几句,希望更加努力啊。
另外提一句,在程序实现上尽量少说“是不可能的”,当你觉得一个功能的实现是不可能的时候,你就失去了动力。一个功能的实现,没有什么不可能,只是自己是否有能力去实现,以及是否值得去实现。在工程上,由于开发周期等的限制,一些功能是不值得花费大量的时间和精力去实现的。然而,在研究领域,在个人学习时,许多功能都是值得我们去实现的。
我坚信别人能实现的,我也能实现。而别人没有实现的,我们同样要实现。
[此贴子已经被作者于2007-9-4 19:59:32编辑过]