0
액터를 만든 다음 기본 입력을 읽는 프로그램이 있습니다. 나는 그것이 "법"방법에 작동하는 기본 배우을 형질에 folowing 작성하는 경우 :스칼라 ObjectInputStream 프로그램이 자동으로 작동하지 않습니다.
trait SocketActor extends Actor{
protected def sock:Socket
protected val in:BufferedReader=new BufferedReader(new InputStreamReader(this.sock.getInputStream()))
protected val out:PrintWriter= new PrintWriter(this.sock.getOutputStream(), true)
def act(){
println("This get to be executed")
}
내가 쓰는 경우가 행동 방법
trait SocketActor extends Actor{
protected def sock:Socket
protected val in:ObjectInputStream=new ObjectInputStream(this.sock.getInputStream())
protected val out:ObjectOutputStream = new ObjectOutputStream (this.sock.getOutputStream())
def act(){
println("This doesn't get to be executed")
}
을 실행하지 않습니다 다음
import java.net._
import java.io._
import scala.io._
import game.io._
class PlayerActor(protected val sock:Socket) extends {
} with SocketActor
object TabuClient{
def main(args:Array[String]){
try{
println("Always exected on both cases")
val port=1337
val s = new Socket(InetAddress.getByName("localhost"), port)
val a=new PlayerActor(s)
a.start()
for (line <- io.Source.stdin.getLines){
a.sendMessage(line)
}
s.close()
}
catch{
case e:Throwable=>{
e.printStackTrace()
}
}
}
이 두 가지 방법이 컴파일하지만, 두 번째는 기본적으로 던지는 예외
0123을하지 않고 배우의 시작 후 실패 배우의 생성은 다음과 같이 다시 시작할 수 있습니다 하여 객체 입력 스트림에 다음을 수행는