摘 要:WINSOCK 是在 Windows 进行网络通信编程的 API 接口,也是 Windws 网络编程的 事实标准。在网络编程中最常用的方案便是客户机/服务器模型。本文提出了在客户机/服务器模 型下用 WINSOCK 实现 Internet 中常见的聊天室软件的方案。 关键词:套接字,WINSOCK,客户机/服务器,网络编程 一:SOCKET 简介 80 年代初,美国政府的高级研究工程机构(ARPA)给加利福尼亚大学 Berkeley 分校提供了 资金,让他们在 UNIX 操作
系统下实现 TCP/IP 协议。在这个项目中,研究人员为 TCP/IP 网络 通信开发了一个 API (应用程序接口) 这个 API 称为 Socket 接口 。 (套接字) 今天, 。 SOCKET 接口是 TCP/IP 网络最为通用的 API,也是在 INTER
NET 上进行应用开发最为通用的 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 句柄进行读,写操作。 二:基于 WINDOWS SOCKET 的应用开发介绍。 在 WINDOWS95/98,WINDOWSNT 进行 WINSOCK 开发使用的编程语言有很多,VC++, JAVA,DELPHI,
VB 等。其中 VC 时使用最普遍,和 WINSOCK 结合最紧密的。并且 VC++ 对原来的 WindowsSockets 库函数进行了一系列封装, 继而产生了 CAsynSocket、 CSocket、 CSocketFile 等类,它们封装着有关 Socket 的各种功能,是编程变得更加简单。但如果你是一 个 WINSOCK 编程的初学者,那么建议你在一开始还是学习 WINSOCK 最基本的 API 函数进 行编程,这样可以大大加深对 WINSOCK 的了解,对将来很有好处。
在 VC 中进行 WINSOCK 的 API 编程开发,需要使用到下面三个文件: 1 WINSOCK.H: 这是 WINSOCK API 的头文件。 2 WSOCK32.LIB: WINSOCK API 连接库文
件。在使用中,一点要把它作为项目的非缺省的 连接库包含到项目文件中去。 3 WINSOCK.DLL: WINSOCK 的动态连接库,位于 WINDOWS 的安装目录下。 WINSOCK 接口在 WINDOWS 编程环境中的位置如下图所示: ================= ================= 可以看到,WINSOCK。DLL 位于 TCP/IP 协议栈和应用程序之间。也就是说,WINSOCK 管 理与 TCP/IP 协议的接口。在一开始 WINSOCK 的应有开发时,你不必对 TCP/IP 协议有很深 刻的了解。但是,如果想成为一个为网络编程的高手,就一定要对下层了解得十分清楚。 在网络编程中最
常用的
方案便是客户机/服务器模型。在这种方案中客户应用程序向服务器程序 请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一 直处于休眠状态, 直到一个客户对这个服务的地址提出了连接请求。 在这个时刻, 服务程序被“惊 醒”并且为客户提供服务-对客户的请求作出适当的反应。虽然基于连接协议(流套接字)的服 务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过无连接协议(