?? serverlistener.java
字號:
package tcpSoundCommunication;
import java.net.*;
import java.io.*;
//import javax.sound.sampled.*;
//單線程.接收單個socket數據流
//ServerListener.java中的接收數據流的函數沒有正確接收造成的
public class ServerListener implements Runnable{ //extends Thread
Socket socket;
//使用播放器AudioPlayer
AudioPlayer player = new AudioPlayer();
Thread thread;
public void start() {
thread = new Thread(this);
thread.setName("Client");
thread.start();
}
public void stop() {
try {
socket.close();
socket=null;
}
catch (IOException ex) {
}
thread = null;
}
//訂閱者使用該接口
public ServerListener(Socket socket) {
this.socket = socket;
start(); // Calls run()
}
public void run() {
try {
while (true) {
if(socket.isConnected()!=true)break;
//接受流BufferedInputStream,with the specified buffer size
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
//播放BufferedInputStream
player.loadAudio(bis);
player.play();
}
System.out.println("closing...");
}
catch (Exception err) {
err.printStackTrace();
System.err.println("客戶已斷開連接ServerListener Exception");
}
finally {
try {
socket.close();
}
catch (IOException e) {
System.err.println("Socket not closed");
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -