1、VC+程序设计 用 WINSOCK 实现聊天 一:SOCKET 简介 SOCKET 实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有 SOCKET 接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个 SOCKET 接口来实现。在 应用开发中就像使用文件句柄一样,可以对 SOCKET 句柄进行读,写操作。 二:基于 WINDOWS SOCKET 的应用开发介绍。 在 WINDOWS95/98,WINDOWSNT 进行 WINSOCK 开发使用的编程语言有很多,VC+,JAVA, DELPHI,VB 等。其中 VC 时使用最普遍,和 WINSOCK 结合最紧密的。并且 V
2、C+对原来的 WindowsSockets 库函数进行了一系列封装,继而产生了 CAsynSocket、CSocket、CSocketFile 等类,它们封装着有关 Socket 的各种功能,是编程变得更加简单。但如果你是一个 WINSOCK 编程的初学者,那么建议你在一开始还是学习 WINSOCK 最基本的 API 函数进行编程,这样可 以大大加深对 WINSOCK 的了解,对将来很有好处。 在 VC 中进行 WINSOCK 的 API 编程开发,需要使用到下面三个文件: 1 WINSOCK.H: 这是 WINSOCK API 的头文件。 2 WSOCK32.LIB: WINSOCK API
3、 连接库文件。在使用中,一点要把它作为项目的非缺省的 连接库包含到项目文件中去。 3 WINSOCK.DLL: WINSOCK 的动态连接库,位于 WINDOWS 的安装目录下。 WINSOCK 接口在 WINDOWS 编程环境中的位置如下图所示: = 应 用 程 序 1 应 用 程 序 2 网 络 编 程 A P I, 例 如 W indow s S ockets 网 络 编 程 A P I, 例 如 W indow s S ockets 网 络 通 讯 协 议 , 例 如 T C P /IP 物 理 通 讯 介 质 网 卡 驱 动 程 序 网 络 编 程 A P I, 例 如 W indo
4、w s S ockets R P C 或 其 他 高 层 通 信 层 = 可以看到,WINSOCK。DLL 位于 TCP/IP 协议栈和应用程序之间。也就是说,WINSOCK 管理 与 TCP/IP 协议的接口。在一开始 WINSOCK 的应有开发时,你不必对 TCP/IP 协议有很深刻的 了解。但是,如果想成为一个为网络编程的高手,就一定要对下层了解得十分清楚。 在网络编程中最常用的方案便是客户机/服务器模型。在这种方案中客户应用程序向服务 器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说, 服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻, 服务程序被“惊醒”并且为客户提供服务对客户的请求作出适当的反应。虽然基于连接协 议(流套接字)的服务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过无 连接协议(数据报套接字)提供的。其编程模型分别如下: 服 务 器 socket( ) bind( ) listen( ) 阻 塞 , 等 待 客