例子代码就在我的博客中,包括六个 和 发送接受的 文件,一个基于 的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。另一压缩包为代码。
1 前言
在一些常用的编程技术中, 网络编程可以说是最简单的一种。而且 编程需要的基础知识很少,适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多,但是
大部分都是基于 开发的,虽说这些“高级”的网络技术屏蔽了大部分底层实现,号称能极大程度的简化开发,而事实上如果你没有一点 基础,要理解和应用这些技术还是很困
难的,而且会让你成为“半瓢水”。
深有感触的是当年我学习 的时候,由于当时各方面的基础薄弱,整整啃了半年书,最终还是一头雾水。如果现在让我带一个人学 ,我一定会安排好顺序:首先弄清 语
法;然后是 编译环境或者 的用法;接下来学习一些网络基础知识;然后是 编程;这些大概要花费 、 个月。有了这些基础学习 一周即可弄懂,两个月就可以基
于 进行开发了。
好了,说了半天其实中心思想就一个, 很简单,很好学!如果你会 或者 ,又懂一点点网络基础如 和 的机制,那么你看完本文就可以熟练进行 开发了。
2 Socket 简介(全文摘抄)
(本节内容全部抄自网络,不保证正确性,有兴趣的可以看看!)
年代初,美国政府的高级研究工程机构()给加利福尼亚大学 分校提供了资金,让他们在 !" 操作系统下实现 #! 协议。在这个项目中,研究人员为 #! 网络通
信开发了一个 !(应用程序接口)。这个 ! 称为 接口(套接字)。今天,$% 接口是 #! 网络最为通用的 !,也是在 ! % % 上进行应用开发最为通用的 !。
& 年代初,由 '() 联合了其他几家公司共同制定了一套 *! * 下的网络编程接口,即 *'+,(( 规范。它是 ( 的重要扩充,主要是增加了一些异步函
数,并增加了符合 *'+,( 消息驱动特性的网络事件异步选择机制。*! *$% 规范是一套开放的、支持多种协议的 *'+,( 下的网络编程接口。从 -&&- 年的 -. 版到
-&&/ 年的 0.. 版,经过不断完善并在 !、'()、1、2!、!)'3、 4 等公司的全力支持下,已成为 *'+,( 网络编程的事实上的标准。目前,在实际应用中的
*! *$% 规范主要有 -.- 版和 0. 版。两者的最重要区别是 -.- 版只支持 #! 协议,而 0. 版可以支持多协议。0. 版有良好的向后兼容性,任何使用 -.- 版的源代码,二
进制文件,应用程序都可以不加修改地在 0. 规范下使用。
$% 实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有 $% 接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个 $% 接口来实现。在应
用开发中就像使用文件句柄一样,可以对 $% 句柄进行读,写操作。
3 再说两句
网上很多文章对于 的来龙去脉有如教科书一般的精准。但是涉及具体编程技术就往往被 等集成开发环境所毒害了,把 *'+,(5$、、、多线程、66 以及编译
链接等等技术搅合在一起煮成一锅夹生饭。
既然要学习 ,就应该用最简单直白的方式把 的几个使用要点讲出来。我认为程序员最关心的有以下几点,按照优先级排列如下:
-. 的机制是什么?
0. 用 #写 需要什么头文件、库文件、66,它们可以由谁提供,安装后一般处于系统的哪个文件夹内?
. 编写 程序需要的编程基础是什么?
. 库内最重要的几个函数和数据类型是什么?