Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建在两个不同端口侦听的服务器_Java_Sockets - Fatal编程技术网

Java 创建在两个不同端口侦听的服务器

Java 创建在两个不同端口侦听的服务器,java,sockets,Java,Sockets,我有一个java应用程序,它只是一个远程服务器。我想设计的远程服务器可以接受两种客户端: 1.有些在端口6000处以127.0.0.1连接 2.第二种类型的客户端,在端口6500处以127.0.0.1连接 我该怎么做 我尝试了以下方法: public class Start { Socket socket=null; private String serverIpAddress="127.0.0.1"; static Thread cThread; publi

我有一个java应用程序,它只是一个远程服务器。我想设计的远程服务器可以接受两种客户端:

1.有些在端口6000处以127.0.0.1连接

2.第二种类型的客户端,在端口6500处以127.0.0.1连接

我该怎么做

我尝试了以下方法:

public class Start {

    Socket socket=null;
    private String  serverIpAddress="127.0.0.1";
    static Thread cThread;
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        ThreadPooledServer server = new ThreadPooledServer(6000);
        new Thread(server).start();




        cThread = new Thread(new ClientThread());
        cThread.start();

    }
其中
ThreadPooledServer
ClientThread
是两个不同的类

当我想开始第二个线程…这意味着这行:

cThread.start()…java告诉我“没有可访问的开始类型的封闭实例!!!”

根据我的说法,这意味着我不能在同一个主线程中启动两个不同的线程……好吧,如果我不能这样做……正确的方法是什么?……启动两个线程

1.在本地计算机上侦听端口6000

2.在端口6500的本地计算机上侦听的秒数


更新:我想创建一个可以监听多个端口的服务器,当我得到一个新的连接时,我想知道该连接使用了哪个端口

如果您想以有效的方式(=单线程)侦听多个端口,最好看看java.nio.SocketChannel和选择器,但我认为对于低负载场景来说,这是一种过分的做法

关于“无法访问Start类型的封闭实例”:


在构造函数中创建踏板并创建类的新对象,或者声明内部类为静态(如果它不需要访问外部类成员)

在示例中,您将它们都设置为同一端口,但按照设计失败:您不能让两个应用在同一主机:端口组合上侦听。在你的ClientThread类中发生了什么?不,不……在同一台主机上,我有两个线程:一个侦听端口6000,另一个侦听端口61000……我该怎么做,因为上面的代码肯定无法工作!!!!!?在我的ClientThread类中,我正在启动线程来收听第二个线程…但是你没有仔细阅读…上面的代码不起作用只是一个愚蠢的例子!!!!我的问题是我如何正确地做这件事?????@玛丽安娜:请冷静下来,不要大喊大叫,告诉我们那里到底发生了什么,因为你的代码(据你所说)与这个问题并不完全相关?那你能给我们看一下代码的相关部分吗?Java不让你做什么?有编译错误吗?运行时异常?上面说什么?现在你只是在重复。冷静下来,帮助我们和你自己澄清问题!