⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverlistener.java

📁 基于JavaSoundDemo的多客户端语音通信. 适合于初学者
💻 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 + -