?? clientclass.java
字號:
package clientPackage;
import java.awt.Point;
import java.beans.PropertyChangeSupport;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.rmi.Naming;
import java.util.Hashtable;
import java.util.Vector;
import java.net.*;
import mediaPackage.Constants;
import serverPackage.*;
public class ClientClass extends Thread{
private ServerFace remote;
private ServerSocket listener;
private Socket socket;
private ObjectInputStream input;
private PropertyChangeSupport propertySupport;
private String myName;
private int audioPort=2000;
public ClientClass(String hostName, String portNumber) {
propertySupport=new PropertyChangeSupport(this);
try{
String serverObject="//"+hostName+"/ServerClass";
remote=(ServerFace)Naming.lookup(serverObject);
listener=new ServerSocket(Constants.LISTEN_PORT+0,1);
this.start();
}catch(Exception e0){
System.err.println("error in ClientClass Constructor");
System.exit(0);
}
}
public void run(){
try{
socket=listener.accept();
input=new ObjectInputStream(socket.getInputStream());
while (true){
int type=((Integer)input.readObject()).intValue();
switch(type){
case Constants.START_SESSION:
propertySupport.firePropertyChange("startSession",null,null);
break;
case Constants.STOP_SESSION:
propertySupport.firePropertyChange("stopSession",null,null);
break;
case Constants.SAY_YES:
propertySupport.firePropertyChange("sayYes",null,null);
break;
case Constants.SAY_NO:
propertySupport.firePropertyChange("sayNo",null,null);
break;
case Constants.LOGOUT_USER:
String name=(String)input.readObject();
propertySupport.firePropertyChange("removeUser",name,null);
break;
case Constants.LOGIN_USER:
UserConfig uConfig=(UserConfig)input.readObject();
propertySupport.firePropertyChange("addUser",null,uConfig);
break;
case Constants.PRIVATE_CHAT:
Vector v=new Vector();
String msg=(String)input.readObject();
String from=(String)input.readObject();
String to=(String)input.readObject();
v.add(msg);
v.add(from);
v.add(to);
v.add(new Integer(Constants.PRIVATE_CHAT));
propertySupport.firePropertyChange("receiveMessage",null,v);
break;
case Constants.PUBLIC_CHAT:
v=new Vector();
msg=(String)input.readObject();
from=(String)input.readObject();
to=(String)input.readObject();
v.add(msg);
v.add(from);
v.add(to);
v.add(new Integer(Constants.PUBLIC_CHAT));
propertySupport.firePropertyChange("receiveMessage",null,v);
break;
case Constants.RAISE_HAND:
propertySupport.firePropertyChange("raiseHand",null,null);
break;
case Constants.LOWER_ALL_HANDS:
propertySupport.firePropertyChange("lowerAllHands",null,null);
break;
case Constants.LOWER_HAND:
propertySupport.firePropertyChange("lowerHand",null,null);
break;
case Constants.STEP_IN_OUT:
propertySupport.firePropertyChange("stepInOut",null,null);
break;
case Constants.CLEAR_YES_NO:
propertySupport.firePropertyChange("clearYesNo",null,null);
break;
case Constants.UPDATE_CONTENT_MANAGER:
String url=(String)input.readObject();
propertySupport.firePropertyChange("addURL",null,url);
break;
case Constants.URL_CHANGED:
url=(String)input.readObject();
propertySupport.firePropertyChange("selectionChanged",null,url);
break;
}
}
}catch(Exception e0){
System.err.println("error in run");
e0.printStackTrace();
System.exit(0);
}
}
private void error(String err){
System.err.println(err);
System.exit(0);
}
public void registerUser() {
try{
}catch(Exception e){
e.printStackTrace();
error("in registerUser");
}
}
public void addPropertyChangeListener(ClientUI clientUI) {
propertySupport.addPropertyChangeListener(clientUI);
}
public void logoutUser(String myName) {
try{
remote.logoutUser(myName);
}catch(Exception e){
error("in logoutUser");
}
}
public Hashtable getUsersConfig() {
try{
return remote.getUsersConfig();
}catch(Exception e){
e.printStackTrace();
error("in getUsersConfig");
}
return null;
}
public Hashtable getURLTable() {
try{
return remote.getURLTable();
}catch(Exception e){
error("in getUrlTable");
}
return null;
}
public Vector getChatMessages() {
try{
return remote.getChatMessages();
}catch(Exception e){
error("in getChatMessage");
}
return null;
}
public void startSpeaking() {
try{
}catch(Exception e){
error("");
}
}
public String getMicLocker() {
try{
remote.getMicLocker();
}catch(Exception e){
error("in getMicLocker");
}
return null;
}
public void stopSpeaking() {
try{
}catch(Exception e){
error("");
}
}
public void sayYes() {
try{
remote.sayYes(myName);
}catch(Exception e){
error("in sayYes");
}
}
public void sayNo() {
try{
remote.sayNo(myName);
}catch(Exception e){
error("say No");
}
}
public void raiseHand() {
try{
remote.raiseHand(myName);
}catch(Exception e){
error("raiseHand");
}
}
public void lowerHand() {
try{
remote.lowerHand(myName);
}catch(Exception e){
error("in LowerHand");
}
}
public void stepInOut() {
try{
remote.stepInOut(myName);
}catch(Exception e){
error("stepInOut");
}
}
public void lowerAllHands() {
try{
remote.lowerAllHands();
}catch(Exception e){
error("in lowerAllHands");
}
}
public void clearYesNo() {
try{
remote.clearYesNo();
}catch(Exception e){
error("clearYesNo");
}
}
public void giveMicToNext() {
try{
remote.giveMicToNext();
}catch(Exception e){
error("giveMicToNext");
}
}
public void sendFeedback(int i, int j) {
try{
remote.sendFeedback(i,j);
}catch(Exception e){
error("sendFeedback");
}
}
public void presenterURLChanged(String newURL) {
try{
remote.presenterURLChanged(newURL);
}catch(Exception e){
error("URLChanged");
}
}
public void drawDot(Point point) {
try{
}catch(Exception e){
error("");
}
}
public void uploadURL(String url) {
try{
remote.startReceivingFile(url,null,0);
}catch(Exception e){
error("");
}
}
public void uploadFile(File file) {
try{
remote.startReceivingFile("file:\\"+file.getName(),InetAddress.getLocalHost(),Constants.FILE_UPLOAD_PORT);
ServerSocket serverSocket=new ServerSocket(Constants.FILE_UPLOAD_PORT,1);
Socket socket=serverSocket.accept();
BufferedOutputStream out=new BufferedOutputStream(socket.getOutputStream());
FileInputStream in=new FileInputStream(file);
int ch;
while ((ch=in.read())!=-1) out.write(ch);
out.close();
in.close();
socket.close();
serverSocket.close();
}catch(Exception e){
error("in uploadfile");
}
}
public void setMyCategory(int myCategory) {
try{
}catch(Exception e){
error("");
}
}
public int loginUser(String myName, String myPassword, int myCategory) {
try{
this.myName=myName;
return remote.loginUser(myName,myPassword,myCategory,InetAddress.getLocalHost().getHostAddress(),audioPort);
}catch(Exception e){
e.printStackTrace();
error("loginUser");
}
return Constants.NONE;
}
public boolean getSessionInfo() {
try{
return remote.getSessionInfo();
}catch(Exception e){
error("getSessionInfo");
}
return false;
}
public int[] receiveFeedback() {
try{
return remote.receiveFeedback();
}catch(Exception e){
error("in receivefeedback");
}
return null;
}
public void clearFeedback() {
try{
remote.clearFeedback();
}catch(Exception e){
error("");
}
}
public void broadcastMessage(String msg, String sender, String receiver, Integer type) {
try{
remote.broadcastMessage(msg,sender,receiver,type);
}catch(Exception e){
error("in broadcast");
}
}
public void stopSession() {
try{
remote.stopSession();
}catch(Exception e){
error("in stopsession");
}
}
public void startSession() {
try{
remote.startSession();
}catch(Exception e){
error("startSession");
}
}
private String getFileName(String urlStr)
{
if (urlStr == "" || urlStr == null)
{
System.out.println("In clientclass class: URL is empty.");
return null;
}
int nameStartIndex = urlStr.lastIndexOf("/");
if(nameStartIndex == -1)
nameStartIndex = urlStr.lastIndexOf("\\");
if(nameStartIndex == -1)
nameStartIndex = urlStr.lastIndexOf("//");
String fileName = null;
if(nameStartIndex != -1)
fileName = urlStr.substring(nameStartIndex + 1);
else
{
System.out.println("URL form error: " + urlStr
+ "\n URL should be in the form of protocol://Path/FileName");
}
return fileName;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -