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