【问题标题】:Scala : how to start an actor in array?Scala:如何在数组中启动一个演员?
【发布时间】:2011-11-05 22:52:32
【问题描述】:

我正在尝试用 2 种语言(Java 和 Scala)编写一个简单的客户端/服务器聊天应用程序。 Java 版本正在运行,唯一的问题是翻译它。 在Java中我有这样的代码:

import java.net.*;
import java.io.*;

public class FileServer666 extends Thread{

    static Socket clientSocket = null;
    static ServerSocket  serverSocket= null;    
    static  clientThread t[] = new clientThread[10]; 

    public static void main(String args[]) throws IOException           
    { 
        int port_number =1406;
        try
        {
            serverSocket = new ServerSocket(port_number);
        }catch(IOException e){System.out.println(e);}

        System.out.println("Listening" +port_number);

        while(true)
        {
            try
            {           
                clientSocket=serverSocket.accept();
                System.out.println("Akceptuje połaczenie od: "+clientSocket.getInetAddress());

                for(int i=0; i<=9; i++)
                {               
                    if(t[i]==null)                                  
                    {
                        (t[i] = new clientThread(clientSocket,t)).start();
                        break;
                    }
                }                       
            }catch(IOException e){System.out.println(e);}       
        }
    }       
}

这里我有一个问题。如何将此行翻译成 Scala:

(t[i] = new clientThread(clientSocket,t)).start();

你有什么建议吗?

【问题讨论】:

    标签: java arrays scala translate actor


    【解决方案1】:

    如果您坚持直接翻译,而您的问题只是分配不会在 scala 中返回值,那么就这样做

    t(i) = new ClientThread(clientSocket, t)
    t(i).start
    

    【讨论】:

    • 我试过了。它不起作用。每次我运行客户端应用程序时,我都会遇到 nullpointerexception。
    【解决方案2】:

    简单地说:

    t(i) = ( new ClientActor( clientSocket, t) ).start
    

    ClientActor 是你的演员。

    【讨论】:

    • 不幸的是它不起作用。我有错误:类型不匹配;发现:scala.actors.Actor required: server.Wyslij Wyslij 是我的演员。
    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    相关资源
    最近更新 更多