?? clientsendfile.java~42~
字號:
package chat;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.text.BadLocationException;
/**
*
* <p>Title:用戶發送文件類 </p>
* <p>Description: 用戶發送文件,根據發送對象創建不同的用戶線程</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class ClientSendFile {
ServerSocket sendFileSocket=null;//發送文件的服務套接
Socket socket=null;
File toSendFile=null;
Hashtable saveThread=new Hashtable();
// static Hashtable saveServerSocket=new Hashtable();
String key=null;
Vector toPeoples;
FileCancelButton fileCancelButton;
/**
*
* @param file File 要發送的文件
* @param toPeoples Vector 要發送的對象
*/
public ClientSendFile(File file,Vector toPeoples){
toSendFile = file;
this.toPeoples = toPeoples;
Enumeration enum = this.toPeoples.elements();//取得發送對象的enumeration對象
while (enum.hasMoreElements()) {//循環創建用戶線程
String toPeople=(String) enum.nextElement();
// System.out.println(enum.nextElement()+" "+toSendFile);
fileCancelButton=new FileCancelButton(toPeople,toSendFile);//創建取消發送按鈕對象
try{
ChatArea.style.addStylesToDocument(ChatArea.fileInfoDoc,
fileCancelButton);
//ChatArea.privateDoc.insertString(ChatArea.privateDoc.getLength(), " "+"\n",
// ChatArea.privateDoc.getStyle("jpanel"));
ChatArea.fileInfoDoc.insertString(ChatArea.fileInfoDoc.getLength(), " "+"\n",
ChatArea.fileInfoDoc.getStyle("jpanel"));//通過樣式顯示提示信息在文件面板
ChatArea.tablePane.setSelectedIndex(2);
}catch(BadLocationException e){
}
boolean isExist=PeopleThread.saveServerSocket.containsKey(toPeople);//判斷該發送對象是否已經存在于發送隊列中
if(!isExist){//存在
Thread peopleThread = new Thread(new PeopleThread(toSendFile,
toPeople));//直接創建用戶線程
peopleThread.start();//啟動線程
}else{//不存在
int port=((Integer)PeopleThread.saveServerSocket.get(toPeople)).intValue();//取得空閑端口
if(ChatArea.getSocket()!=null){
try {
ChatArea.getOut().writeUTF("SEND_FILE:" + toSendFile + "#TOPEOPLE#" +
toPeople + "#PORT#" + port +
"#FILE_LENGTH#" + toSendFile.length());
}catch(IOException e){
}
}
}
try {
Thread.sleep(150);
}
catch (Exception e) {
}
}
}
public static void main(String[] args) {
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -