-1
我在socket编程一个我的Scala代码While循环中,我得到了socket.inputstream到一个变量斯卡拉传递变量
的这里的问题是,我不能在主要功能或任何使用这个变量其他功能
class NetworkService(port: Int, poolSize: Int) extends Runnable {
val serverSocket = new ServerSocket(port)
val pool: ExecutorService = Executors.newFixedThreadPool(poolSize)
def run() {
try {
while (true) {
// This will block until a connection comes in.
val socket = serverSocket.accept()
val in = new BufferedReader(new InputStreamReader(socket.getInputStream)).readLine
pool.execute(new Handler(socket))
}
} finally {
pool.shutdown()
}
}
}
class Handler(socket: Socket) extends Runnable {
def message = (Thread.currentThread.getName() + "\n").getBytes
def run() {
socket.getOutputStream.write(message)
socket.getOutputStream.close()
}
}
object MyServer {
def main(args: Array[String]) {
(new NetworkService(2030, 2)).run
////////I WANT TO USE THE IN here
}
}
我想将变量作为参数传递给另一个函数
我不明白这个问题。 “def run”与这个有什么关系?为什么不能将'var'的值传递给'println'。为什么你需要一个'var'开头?示例中没有任何内容正在改变它的价值。 – drstevens
运行只是范围内的另一个功能,我希望我们能够在主功能中“进入” –
您是否使用单线程? –