数据报套接 字)提供的。其编程模型分别如下: 面 向 连 接 协 议 的 SOCKET 编 程 模 型
================================ 无连接协议的 SOCKET 编程模型================================ 一般在使用中,面向连接协议的 SOCKET 编程模型应用最为广泛,因为面向连接协议提供了一 系列的数据纠错功能,可以保证在网络上传输的数据及时、无误地到达对方。 总的来说,使用 SOCKET 接口(面向连接或无连接)进行网络通信时,必须按下面简单的四步进行处理:1、程 序必须建立一个 SOCKET。2、程序必须按要求配置此 SOCKET。也就是说,程序要么将此 SOCKET 连接到远方的主机上,要么给此 SOCKET 指定一个本地协议端口。 3、程序必须按要求通过此 SOCKET 发送和接收数据。 4、程序必须关闭此 SOCKET。 三:WINSOCK API 主要函数简介
作者利用 WINSOCK API 编写了一个具有聊天室功能的应用程序, 可用作
学习 WINSOCK 程 序设计的参照。WINSOCK API 包括很多函数,但其中最常用,包括在文章所附源
程序中的有: 注:只是有关函数的简要说明,具体规则、说明请参见 VC++帮助和 WINSOCK 规范。 1、WSAStartup():连结应用程序与 Windows Sockets DLL 的第一个函数。 说明: 此函数是应用程序调用 Windows Sockets DLL 函数中的第一个,也唯有此函数呼叫 成功後,才可以再调用其他 Windows Sockets DLL 的函数。 2、WSACleanup():结束 Windows Sockets DLL 的使用。 说明: 当应用程序不再需要使用 Windows Sockets DLL 时,须调用此函数来注销使用,以 便释放其占用的资源。 3、 socket():建立 Socket。 说
明: 此函数用来建立一 Socket 描述字,并为此 Socket 建立其所使用的资源。 4、 closesocket():关闭某一 Socket。 说明: 此一函数是用来关闭某一 Socket。 5、 bind():将一本地地址与一个 SOCKET 描述字连接在一起。 说明:此函数在服务程序上 使用,是调用监听函数 listen()必须要调用的函数。 6、 listen():设定 Socket 为监听状态,准备被连接。 说明: 此函数在服务程序上使用,来设定 Socket 进入监听状态,并设定最多可有多少个在未 真正完成连接前的客户端的连接要求。(目前最大值限制为 5, 最 小值为 1) 7、 accept():接受某一 Socket 的连接要求,以完成面向连接的客户端 Socket 的连接请求。 说明: 服务端应用程序调用此函数来接受客户端 Socket 连接请求,accept() 函数的返回值 为一新的 Socket,新 Socket 就可用来在服务端和客户端之间的信息传递接收,而原来 Socket 仍然可以接收其他客户端的连接要求。 8、 connect():要求连接某一 Socket 到指定的网络上服务端。 说明: 此函数用在客户端,用来向服务端要求建立连接。当连接建立完成後,客户端即可利用 此 Socket 来与服务端进行信息传递。 9、 recv():从面向连接的 Socket 接收信息。
说明: 此函数用来从面向连接的 Socket 接收信息。 10、send():使用面向连接的 Socket 发送信息。 说明: 此函数用来从面向连接的 Socket 发送信息。 11、WSAAsyncSelect():要求某一 Socket 有事件 (event) 发生时通知使用者。 说明: 此函数用来请求 Windows Sockets DLL 为窗口句柄发一条消息-无论它何时检测到 由 lEvent 参数指明的网络事件。要发送的消息由 wMsg 参数标明.被通知的套接口由 s 标识。 本函数自动将套接口设置为非阻塞模式。 lEvent 参数由下表中列出的值组成。 值 意义 FD_READ 欲接收读准备好的通知。 FD_WRITE 欲接收写准备好的通知。 FD_OOB 欲接收带边数据到达的通知。 FD_ACCEPT 欲接收将要连接的通知。 FD_CONNECT 欲接收已连接好的通知。 FD_CLOSE 欲接收套接口关闭的通知。 这个函数可以认为是 WINSOCK API 中最为重要的一个函数。要想使用好这个函数,你必须 对 WINDOWS 编程的事件驱动和消息传递有很清楚的了解。 四:聊天室