一、 课题内容和要求 1
课题内容 基于 Socket和多线程编程的聊天程序实现 2
课题要求 网络聊天程序设计非常复杂,允许多个人同时聊天更加需要多线程技术的支持,请实现一个简单的多线程网络聊天程序模拟
二、 设计思路分析 1
在网络越来越发达的今天,人们对网络的依赖越来越强,网络聊天已经成了许多人生活中必不可少的一部分,基于这样的需求,出现了许多网络聊天通信工具,像 QQ,MSN 等等,但是人们已经不再满足于单一的两个人之间的聊天,而是对多人同时聊天产生了兴趣,于是出现了网络聊天室,不同地方的人可以在那个虚拟的聊天室里面热烈聊天
基于这样的想法,我们用 JAVA 设计一个多人同时聊天的小程序,用 Socket 编程实现网络通讯,面向连接的,采用多线程的实现技术
在程序中,可以设置加入连接的最大数目,通过更改 IP 地址和端口号,成为不同的客户端,与服务器端连接,进行多用户聊天
为方便用户交互,我们采用图形化的用户界面
实现了好友添加,消息收发、显示等基本功能
三、 概要设计 该网络聊天程序大致分为三个主要部分:客户端、服务器端和用户图形界面
各个部分的初步设计思想、流程及存储结构如下: 1
程序整体框架:主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话
当一个 Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听
打开 Socket 命 名 监听端口 建立连接 收发消息 关闭连接 打开 Socket 连接服务器 收发消息 关闭连接 服务器端程序 客户端程序 2
客户端(Client) 客户端,使用Socket 对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket
客户端不需要指定打开的端口,通常临时的、动态的分配一个端口
服务器端(Server) 服务器端,使