网络程序设计考试大作业.docx
《网络程序设计考试大作业.docx》由会员分享,可在线阅读,更多相关《网络程序设计考试大作业.docx(10页珍藏版)》请在冰豆网上搜索。
网络程序设计考试大作业
网络程序设计考试大作业
题目:
聊天室程序
班级:
学号:
姓名:
成绩:
网络程序设计考试大作业1
一.所使用的背景知识、主要函数的描述3
二.程序设计思想及程序设计流程框图3
三.主要代码及代码运行结果4
1.启动服务器4
2.登录6
3.注册10
4.登录和注册判定12
5.进入聊天界面13
6.私聊页面17
一.所使用的背景知识、主要函数的描述
背景:
根据现在最流行的聊天工具QQ,模仿一部分主要功能来完成。
主要函数:
publicclassServer;服务器的创建。
publicclassClient;客户端的创建。
publicclassMainextendsJFrame;登录界面的显示。
publicclassRegistextendsJDialog;注册界面的显示。
publicclassUserInformation;用户信息的保存和验证。
publicclassAllTalkFrameextendsJFrame;登录后进入群聊界面。
publicclassPointToPointTalkFrameextendsJFrame;私聊界面。
二.程序设计思想及程序设计流程框图
设计思想:
利用socket与serversocket在客户端与客户端之间的通信,InputStreamInputStreamReader输入输出流进行信息的发送与接收。
程序设计流程:
主页面:
输入账号与密码,点击登录或者注册进入下一页面。
登录:
判定是否正确,正确则进去聊天界面。
注册:
进去注册界面,成功则返回主页面。
进入聊天室:
能发送信息让在线的所有人看到。
私聊界面:
能与一个人单独聊天,信息只能被双方看到。
三.主要代码及代码运行结果
1.启动服务器
代码:
publicclassServer{
ServerSocketserver;
staticintclientNum=0;
tart();
}
}catch(IOExceptione){
"客户连接服务器失败");
}
}
}
quals(userPassword)){
(null,"密码不能为空");
}elseif(userName)
&&userPassword)){
newAllTalkFrame(userName).setVisible(true);etPassword());
"您点击了提交按钮");
if("")){
(null,"用户名不能为空");
}elseif("".equals(userPassword)
||"".equals(userPasswordConfirm)){
(null,"密码和密码重复都不能为空");
}elseif(!
(userPasswordConfirm)){
(null,"密码和密码重复不一致");
}else{
UserInformationuser=newUserInformation();
if(userName)){
(null,"此用户名已存在");
}else{
(null,"注册成功");
(userName,userPassword);ndexOf(":
")+1).equals("\r\n"))){
Strings1=('说','');
Strings=("�","\r\n");
(s);
}
ndexOf("和"));
StringsiliaoName2=(
("和")+1,serverOutput
.indexOf("\r"));
StringsiliaoBenshen="";
StringsiliaoDuixiangName="";
if(clientName)){
siliaoBenshen=siliaoName1;
siliaoDuixiangName=siliaoName2;
}else{
siliaoBenshen=siliaoName2;
siliaoDuixiangName=siliaoName1;
}
etVisible(true);
}
}
}catch(IOExceptione1){
"读取服务器端消息出错");
}
}
}
}
oString().equals(clientName)){
(null,"不能和自己聊天");
}else{
StringPToPMemberName="私聊"
+"*"
+clientName
+"和"
+.toString();
}
}
}
});
界面:
5.私聊页面
代码:
plit("和");
}else{
s=(2,
("说")).split("和");
}
for(inti=0;i<;i++){
s1=s1+s[i];
}
}
ndexOf("和"));
Stringss2=(serverOutput
.indexOf(":
"));
//将私聊客户端返回来的一行字符串按"�"进行拆分成多行,显示在私聊的oldMessageArea中
if("�")!
=-1){
ss2=("�","\r\n");
}
(ss1+ss2);
}
}catch(IOExceptione1){
"读取服务器端消息出错");
}
}
}
}
界面:
精心搜集整理,只为你的需要