?? receiver.java
字號:
package chat.task;
import java.io.*;
import java.net.*;
import java.util.concurrent.*;
/**
*Socket接收器
*用于連續不斷地將從套接字通道中接收的信息放入一個隊列之中。
*然后隊列等待用戶取出
*/
public class Receiver extends Thread {
private Socket socket;
private BlockingQueue queue;
private ObjectInputStream in;
/**
* Method ReceiveServicer
*
*
*/
public Receiver(Socket socket,BlockingQueue queue)
throws IOException{
this.socket=socket;
this.queue=queue;
in=new ObjectInputStream(socket.getInputStream());
}
/**
* Method run
*
*
*/
public void run(){
try{
while(true){
try{
Object object=in.readObject();
queue.put(object);
}catch(InterruptedException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
}catch(IOException e){
}finally{//當連接斷開之后,不論何各情況,總是將套接字對象本身放入隊列
try{
in.close();
queue.put(socket);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -