... ...
3.关闭客户连接
sckServer_Close过程关闭与客户的连接, 删除控件,收回系统资源,将该位置的连接状态设置为假,以便有用户请求连接时继续使用。 它一般由HandleOtherMessage过程调用
......
如何保证聊天 内容的健康是一个很重要的方面,在Internet上,我们对谈话内容不健康者,只有将之开除出 聊天室。但在局域网上则可以查出是谁谈话不文明(局域网环境为WindowsNT4.0服务器,Windows 95工作站)。方法如下:在95工作站上将网络中的TCP/IP协议中的IP地址选项设为动态获得IP 地址,在NT服务器上用DHCP管理工具为每一个客户机进行IP地址动态分配。聊天服务程序记 录下来了每一个客户的IP地址,我们就可以通过DHCP管理工具很容易地查出某IP地址对应的 计算机名,并进行处理。
客户程序部分
客户程序启动时首先设置服务器 的地址及端口,这里我直接使用了“192.168.0.2”,这是我的服务器地址,可以在Form_load过 程中设置你自己的服务器地址,也可在程序开始时让用户输入服务器地址以增加灵活性。时 钟控件用以与远程节点进行自动连接。
......
客户程序主要对象设置
......
“” 显示所有正在聊天室中的用户名
显示当前的状态(用户名,IP地址及是否密谈)
与服务器程序一样,这里列出的并非全部的控件,但是已经足以完成工作。
客户程序中的自定义类MyMessage用来记录自己的信息,
......
类中的变量cmdExitClick用来记录用户是否按了退出按钮,如果是按了退出按钮则为真。当 用户选择了系统的窗体关闭菜单而没有按退出按钮时将会产生错误,因此用它来记录是如何 退出的,如果选择了系统的窗体关闭菜单,则执行一次cmdExit_Click()过程,以确保无误。
客户退出时,不是简单地关闭自己的Winsock控件,而是发送一个字符串(我采用了一个大家 在聊天时很难用到的字符串“=_RE”)给服务器,表明自己要退出,由服务器端关闭连接,进而 关闭自身。