Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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 在非服务器应用程序中嵌入ServerSockets_Java_Multithreading_Networking_Blocking - Fatal编程技术网

Java 在非服务器应用程序中嵌入ServerSockets

Java 在非服务器应用程序中嵌入ServerSockets,java,multithreading,networking,blocking,Java,Multithreading,Networking,Blocking,我一直在尝试在我创建的应用程序中开发嵌入式Web服务器。从本质上说,我们有一个主要的过程来创建一个简单的Web服务器(利用ServerSocket),然后主要的过程(理论上)将处理它的业务 Main(){ doingStuff(); WebServer server = new WebServer(); server.run(); doingMoreStuff(); } public class WebServer implements Runnable{

我一直在尝试在我创建的应用程序中开发嵌入式Web服务器。从本质上说,我们有一个主要的过程来创建一个简单的Web服务器(利用ServerSocket),然后主要的过程(理论上)将处理它的业务

Main(){
    doingStuff();
    WebServer server = new WebServer();
    server.run();
    doingMoreStuff();
}

public class WebServer implements Runnable{
    ServerSocket inbound;

    //constructor
    WebServer(){
        inbound = new ServerSocket(9687);
    }

    public void Run(){
        Socket client;

        while(true){
            client = inbound.accept();
            SomeClass threadedClassThatHandlesClientMessage = new SomeClass(client);
            someclass.run();
        }
    }
}
在前面的psuedo代码中,我知道带有ServerSocket accept()调用的线程会阻塞,从而停止WebServer类线程以及主线程。有什么我遗漏的吗

我知道我可以创建两个程序,它们可以作为单独的进程同时运行,但我希望避免任何IPC,而是争取在一个线程中处理数据,在单独的线程中接收数据的通用serversocket。虽然我对这一切还不熟悉,但我相当肯定这是我忽略的简单事情之一,但我非常感谢您提供的任何帮助。

可运行的
上调用
.run()
不会使它在新线程中运行,而是在当前线程中运行


你的意思是做
新线程(服务器).start()

啊,我完全忘了。我过去只是扩展Thread类,而不是使用runnable接口。这就是多年来没有为您使用Java的原因。谢谢