Scala:如何在数组中启动演员?

发布于 2024-12-01 16:01:26 字数 1417 浏览 2 评论 0原文

我正在尝试用 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();

你有什么建议吗?

I'm trying to write a simple client/server chat application in 2 languages - Java and Scala. Java version is working and the only problem is to translate it.
In Java i have code like this:

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);}       
        }
    }       
}

Here I have a problem. How to translate this line into Scala:

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

Do you have any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

地狱即天堂 2024-12-08 16:01:26

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

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

If you keep to a direct translation and your problem is just that assigning does not return a value in scala, then just do

t(i) = new ClientThread(clientSocket, t)
t(i).start
似最初 2024-12-08 16:01:26

简单地说:

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

其中 ClientActor 是您的演员。

Simply:

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

where ClientActor is your actor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文