資源簡介
西北工業大學,軟件學院,網絡與分布計算,Exam2(機試2),Exam 2 分布式消息系統,使用RMI建立一個分布式消息系統。該系統需實現用戶注冊、查看所有已注冊用戶信息、給其他用戶留言,以及查看其它用戶給自己的留言。

代碼片段和文件信息
import?java.io.*;
import?java.rmi.*;
import?java.util.*;
/**
?*?class?Client?represents?a?client?for?the?SSD8?Distributed?Message
?*?Center.
?*
?*?@author?wben
?*?@version?1.0
?*
?*/
public?class?Client?{
/**
?*?main?method
?*/
public?static?void?main(String[]?args)?{
int?portNumber?=?1099;
String?hostname?=?“localhost“;
BufferedReader?keyboard?=?new?BufferedReader(new?InputStreamReader(System.in));
/**
?*?Print?usage?instructions?if?the?incorrect?paramteres?are?supplied.
?*/
int?choice?=?0;
String?username?password?recipientname?message;
/**
?*?Create?the?connection?to?the?message?center.
?*/
MessageInterface?mc?=?null;
try?{
mc?=?(MessageInterface)?Naming.lookup(“rmi://“?+?hostname?+?“:1099“??+?“/Message“);
}?catch?(Exception?e)?{
e.printStackTrace();
}
/**
?*?Loop?forever?while?displaying?the?menu?and?performing?operations?for
?*?the?user.
?*/
while?(true)?{
System.out.println(“**********?Distributed?Message?Center?**********?“);
System.out.println(“(1)?Show?registered?users?“);
System.out.println(“(2)?Register?a?new?user“);
System.out.println(“(3)?Check?Messages“);
System.out.println(“(4)?Leave?a?message“);
System.out.println(“(5)?Exit“);
System.out.println(“************************************************“);
System.out.println(“Enter?choice:?“);
try?{
choice?=?Integer.parseInt(keyboard.readLine());
}?catch?(IOException?e)?{
e.printStackTrace();
}
if?(choice?==?1)?{
try?{
String?sr?=?null;
sr?=mc.showusers();
System.out.println(sr);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
if?(choice?==?2)?{
try?{
System.out.println(“Enter?username:?“);
username?=?keyboard.readLine();
System.out.println(“Enter?password:?“);
password?=?keyboard.readLine();
if?(!mc.register(username?password))?{
System.out.println(“Registration?failed?try?another?username!“);
}?else?{
System.out.println(“Registration?succeeded!“);
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
if?(choice?==?3)?{
try?{
System.out.println(“Enter?username:?“);
username?=?keyboard.readLine();
System.out.println(“Enter?password:?“);
password?=?keyboard.readLine();
Vector?messages?=?mc.checkmessages(username?password);
if?(messages?==?null)?{
System.out.println(“Authentication?failed?or?you?have?no?messages!“);
}?else?{
System.out.println(“Your?messages:?“);
for?(int?i?=?0;?i? System.out.println((Message)?messages.get(i));
}
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
if?(choice?==?4)?{
try?{
System.out.println(“Enter?your?username:?“);
username?=?keyboard.readLine();
System.out.println(“Enter?your?pa
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-12-28?17:32??Exam2\
?????文件?????????302??2019-12-28?15:25??Exam2\.classpath
?????文件?????????379??2019-12-28?15:25??Exam2\.project
?????目錄???????????0??2019-12-28?17:32??Exam2\.settings\
?????文件?????????598??2019-12-28?15:25??Exam2\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2019-12-28?17:32??Exam2\bin\
?????文件????????3665??2019-12-28?17:28??Exam2\bin\Client.class
?????文件????????2051??2019-12-28?15:28??Exam2\bin\Message.class
?????文件????????3120??2019-12-28?17:31??Exam2\bin\MessageCenter.class
?????文件?????????507??2019-12-28?17:26??Exam2\bin\MessageInterface.class
?????文件????????1140??2019-12-28?15:59??Exam2\bin\RMIServer.class
?????文件????????1095??2019-12-28?16:54??Exam2\bin\User.class
?????目錄???????????0??2019-12-28?17:32??Exam2\src\
?????文件????????3504??2019-12-28?17:28??Exam2\src\Client.java
?????文件????????1953??2019-12-28?15:28??Exam2\src\Message.java
?????文件????????3128??2019-12-28?17:31??Exam2\src\MessageCenter.java
?????文件?????????913??2019-12-28?17:26??Exam2\src\MessageInterface.java
?????文件?????????651??2019-12-28?15:59??Exam2\src\RMIServer.java
?????文件?????????988??2019-12-28?16:54??Exam2\src\User.java
- 上一篇:flexslider輪播實現源碼
- 下一篇:cxGrid指定列回車跳轉
評論
共有 條評論