Java聊天室系统程序设计实验报告 - 图文(4)

2019-03-09 12:56

public void actionPerformed(ActionEvent evt) { helpMenuItemActionPerformed(evt); } });

helpMenu.add(helpMenuItem);

aboutMenuItem.setForeground(new Color(255, 255, 255)); aboutMenuItem.setFont(new Font(\宋体\ aboutMenuItem.setText(\关于\

aboutMenuItem.setBackground(new Color(0, 0, 0)); aboutMenuItem.setBorder(null);

aboutMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { aboutMenuItemActionPerformed(evt); } });

helpMenu.add(aboutMenuItem);

menuBar.add(helpMenu);

setJMenuBar(menuBar);

pack(); }

public static void main(String args[]) //主函数 {

new Server().show(); }

class connection extends Thread {

private User fromUserMessage=new User(); private User toUserMessage=new User(); private Socket netUser;

private ObjectInputStream streamFromUser; private ObjectOutputStream streamToUser; private boolean existName,existPassword;

private String onlineNumber=\判断在线人数的变化

public connection(Socket UserSocket) {

netUser=UserSocket; try {

streamFromUser = ObjectInputStream(netUser.getInputStream()); streamToUser = ObjectOutputStream(netUser.getOutputStream());

第 15 页 共 69 页

15

new new

}

catch(IOException e) {

try {

netUser.close(); }

catch(IOException e1) {

System.out.print(\ return; } }

this.start(); }

public boolean validateName(String name) {

boolean validate;

String recode,message; RandomAccessFile logfile; FileInputStream fsread; InputStreamReader inputread; BufferedReader bfread; validate=false; try

{

fsread=new FileInputStream(\ inputread=new InputStreamReader(fsread); bfread=new BufferedReader(inputread);

while((recode=bfread.readLine()) != null)//验证用户信息 {

StringTokenizer st = new StringTokenizer(recode,\ while (st.hasMoreTokens()) {

message=st.nextToken(); if(message.equals(name)) {

validate=true; break;

} break;

} } }

catch(FileNotFoundException e) {

System.out.println(\ }

catch(IOException e) {

16

第 16 页 共 69 页

System.out.println(\ }

return validate; }

public boolean validatePassword(String password) {

boolean validate;

String recode,message; RandomAccessFile logfile; FileInputStream fsread; InputStreamReader inputread; BufferedReader bfread; validate=false; try

{

fsread=new FileInputStream(\ inputread=new InputStreamReader(fsread); bfread=new BufferedReader(inputread);

while((recode=bfread.readLine()) != null)//验证用户信息 {

StringTokenizer st = new StringTokenizer(recode,\ while (st.hasMoreTokens()) {

message=st.nextToken(); message=st.nextToken();

if(message.equals(password)) {

validate=true; break;

} break; } } }

catch(FileNotFoundException e) {

System.out.println(\ }

catch(IOException e) {

System.out.println(\ }

return validate; }

public void run() {

try

{

17

第 17 页 共 69 页

for(;;) {

String ButtonMessage;

fromUserMessage=(User)streamFromUser.readObject();//读用户信息

ButtonMessage=fromUserMessage.Command; //读按钮信息

existName=validateName(fromUserMessage.UserName); //验证用户名

existPassword=validatePassword(fromUserMessage.UserPassword);//验证用户密码

if(ButtonMessage.equals(\ {

Login(); }

if(ButtonMessage.equals(\ {

Enter(); }

if(ButtonMessage.equals(\ {

Leave(); }

if(!onlineNumber.equals(\ {

Updating(fromUserMessage.UserName);

}

if(ButtonMessage.equals(\|| ButtonMessage.equals(\ {

Message(); }

if(ButtonMessage.equals(\|| ButtonMessage.equals(\ {

toSinkMessage(); }

if(ButtonMessage.equals(\|| ButtonMessage.equals(\ {

toUserMessage();

} } }

catch(IOException e){}

catch(ClassNotFoundException e){} try {

streamFromUser.close();

第 18 页 共 69 页

18

streamToUser.close(); netUser.close(); }

catch(IOException e){} }

public void Login()//注册请求处理 {

try {

if(existName) {

toUserMessage.Command=\

streamToUser.writeObject((User)toUserMessage); //返回操作信息

streamToUser.flush();

} else {

//加入新用户信息 RandomAccessFile UserObj=new RandomAccessFile(\

UserObj.seek(UserObj.length());

UserObj.writeBytes(fromUserMessage.UserName+\\

+fromUserMessage.UserHeadPhoto+\age.UserAge+\

onlineNumber=\

toUserMessage.Command=\

toUserMessage.UserName=fromUserMessage.UserName;

toUserMessage.Message=\系统消息:大家欢迎\加入我们的DaoDao聊天室!!!\

Server.vectorUserList.addElement(fromUserMessage.UserName);//加入用户到用户在线列表

toUserMessage.vectorUserList=Server.vectorUserList;

streamToUser.writeObject((User)toUserMessage);//返回用户在线列表和操作信息

streamToUser.flush();

Server.vectorStreamToUser.addElement(streamToUser);//存储该对象的输出流

jLabel5.setText(\共有:\个客户在线\服务器刷新

jList1.setListData(Server.vectorUserList);

第 19 页 共 69 页

19


Java聊天室系统程序设计实验报告 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全国2008年1月自学考试光纤通信原理试卷参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: