用WINSOCK实现聊天室的VC++程序设计
程序说明:
原作者:贵州大学计算机软件与理论研究所罗杰 代码大小:78K
---- 软件功能:
---- Internet上可以提供一种叫IRC 的服务。使用者通过客户端的程序登录到IRC服务器上,就可以与登录在同一IRC服务器上的客户进行交谈,这也就是平常所说的聊天室。在这里,给出了一个在运行TCP/IP协议的网络上实现IRC服务的程序。
---- 软件使用说明:
---- 首先,在一台计算机上运行服务端程序,然后就可以在同一网络的其他计算机上运行客户端程序,登录到服务器上,各个客户之间就可以聊天了。
---- 软件设计要点:
---- 1、服务端
---- 核心代码在 CServerViwe 类中,有一个 SOCKET 变量 m_hServerSocket 和 SOCKET 数组 m_aClientSocket[MAXClient](MAXClient:所定义的接收连接客户的最大数目),m_hServerSocket 用来在指定的端口( >1000)进行侦听,如果有客户端请求连接,则在 m_aClientSocket 数组中查找一个空 socket,将客户端的地址赋予此 socket。
---- 每当一个 ClientSocket 接收到信息,都将会向窗口发一条消息。程序接收到这个消息后,再把接收到的信息发送给每一个 ClientSocket。
---- 2、客户端
---- 客户端比较简单,核心代码在 CClientDlg 类中。只有一个 socket 变量 m_hSocket,与服务端进行连接。连接建立好后,通过此 SOCKET 发送和接收信息。
---- 为了简化设计,用户名在客户端控制,服务器端只进行简单的接收信息和“广播”此信息,不进行名字校验,也就是说,可以有同名客户登录到服务端。这个程序设计虽然简单,但是已经具备了聊天室的最基本的功能。
---- 程序在VC++ 6.0 下编译通过,在使用 TCP/IP 协议的 WINDOWS 95/98 对等局域网 和使用 TCP/IP 协议的 WINDOWS NT 局域网上运行良好。