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

📄 socketserver.scala

📁 JAVA 语言的函数式编程扩展
💻 SCALA
字号:
/*                     __                                               *\**     ________ ___   / /  ___     Scala API                            ****    / __/ __// _ | / /  / _ |    (c) 2002-2007, LAMP/EPFL             ****  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **** /____/\___/_/ |_/____/_/ | |                                         ****                          |/                                          **\*                                                                      */// $Id: SocketServer.scala 14416 2008-03-19 01:17:25Z mihaylov $package scala.tools.utilimport java.lang.Systemimport java.io.PrintWriterimport java.io.BufferedOutputStreamimport java.io.{BufferedReader, InputStreamReader}import java.io.IOExceptionimport java.net.ServerSocket/** The abstract class <code>SocketServer</code> implements the server *  communication for the fast Scala compiler. * *  @author  Martin Odersky *  @version 1.0 */abstract class SocketServer {  def shutDown: Boolean  def session()  var out: PrintWriter = _  var in: BufferedReader = _  def fatal(msg: String): Nothing = {    System.err.println(msg)    exit(1)  }  val port: Int = try {    val s = new ServerSocket(0) // a port of 0 creates a socket on any free port.    val p = s.getLocalPort()    s.close()    p  } catch {    case e: IOException =>      fatal("Could not listen on any port; exiting.")  }  def run() {    while (!shutDown) {      val serverSocket = try {        new ServerSocket(port)      } catch {        case e: IOException =>          fatal("Could not listen on port: " + port + "; exiting.")      }      val clientSocket = try {        serverSocket.accept()      } catch {        case e: IOException =>          fatal("Accept on port " + port + " failed; exiting.")      }      out = new PrintWriter(clientSocket.getOutputStream(), true)      in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))      val bufout = new BufferedOutputStream(clientSocket.getOutputStream, 10240)      scala.Console.withOut(bufout) {        session()      }            bufout.close()      out.close()      in.close()      clientSocket.close()      serverSocket.close()    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -