Java 那么为什么不是';这不是真的开始了吗?服务器套接字和套接字
我正在尝试构建一个web服务器,然后将get、post、put和delete操作传递给它。一些基本和简单的东西 因此,我决定编写一个简单的web服务器,它可以执行以下操作:Java 那么为什么不是';这不是真的开始了吗?服务器套接字和套接字,java,sockets,Java,Sockets,我正在尝试构建一个web服务器,然后将get、post、put和delete操作传递给它。一些基本和简单的东西 因此,我决定编写一个简单的web服务器,它可以执行以下操作: package aisisplatform.web; import aisisplatform.web.interfaces.*; import aisisplatform.web.exceptions.*; import java.net.*; import java.io.*; public class WebSer
package aisisplatform.web;
import aisisplatform.web.interfaces.*;
import aisisplatform.web.exceptions.*;
import java.net.*;
import java.io.*;
public class WebServer implements WebServerInterface{
private int bindToPort;
private Socket socket;
private ServerSocket serverSocket;
public WebServer(int port){
bind(port);
}
@Override
public void bind(int port) throws WebServerException {
if(port == 0 ){
throw new WebServerException("Cannot bind to port specified");
}
bindToPort = port;
}
@Override
public void start() throws WebServerException {
try{
System.out.println("Starting Web Server");
serverSocket = new ServerSocket(bindToPort);
socket = serverSocket.accept();
System.out.println("localhost:" + bindToPort + " is active.");
}catch(IOException e){
throw new WebServerException(e);
}
}
@Override
public void stop() throws WebServerException {
try{
System.out.println("Stopping Web Server");
serverSocket.close();
socket.close();
System.out.println("Web Server Stopped");
}catch(IOException e){
throw new WebServerException(e);
}
}
@Override
public void restart(){
System.out.println("Stopping Web Server");
stop();
System.out.println("Web Server Stopped");
System.out.println("Starting Web Server");
start();
System.out.println("localhost:" + bindToPort + " is active.");
}
}
然后用于:
package aisisplatform;
import aisisplatform.web.*;
import aisisplatform.web.exceptions.*;
public class AisisPlatform {
private static String[] argumentsArray;
public static void main(String[] args) {
if(args.length > 0){
argumentsArray = args[0].split("=");
if(argumentsArray[0].equals("--port")){
WebServer webServer = new WebServer(Integer.parseInt(argumentsArray[1]));
switch (args[1]) {
case "start":
webServer.start();
break;
case "stop":
webServer.stop();
break;
case "restart":
webServer.restart();
break;
default:
throw new WebServerException("We only allow --port=xxxxx start | stop | restart ");
}
}
}
}
}
然后使用以下参数运行应用程序:--port=xxxxx start | stop | restart
问题很简单。运行该应用程序会得到以下行:System.out.println(“启动Web服务器”)代码>然后它就停止了
我试过调试它,并播放了一遍,它设置了47000的端口,但它从未完成启动。。。Netbeans就像“我设置了服务器套接字,现在我完成了,请允许我挂在这里…”没有任何错误消息抛出
socket = serverSocket.accept();
该方法会一直阻塞,直到建立连接为止。你应该使用分开的线程
该方法会一直阻塞,直到建立连接为止。你应该使用分开的线程
该方法会一直阻塞,直到建立连接为止。你应该使用分开的线程
该方法会一直阻塞,直到建立连接为止。你应该使用分开的线程
运行该应用程序会得到以下行:System.out.println(“启动Web”)
服务器“);然后它就停了
这是一个阻塞调用,在客户端实际连接到服务器之前不会返回
运行该应用程序会得到以下行:System.out.println(“启动Web”)
服务器“);然后它就停了
这是一个阻塞调用,在客户端实际连接到服务器之前不会返回
运行该应用程序会得到以下行:System.out.println(“启动Web”)
服务器“);然后它就停了
这是一个阻塞调用,在客户端实际连接到服务器之前不会返回
运行该应用程序会得到以下行:System.out.println(“启动Web”)
服务器“);然后它就停了
这是一个阻塞调用,在客户端实际连接到您的服务器之前不会返回…,因为它正在等待建立连接。
检查ServerSocket.accept()方法注释
"
侦听与此套接字的连接并接受
该方法会一直阻塞,直到建立连接。”
您正在同一线程(主线程)中启动ServerSocket(侦听器)。因此,主线程将等待连接建立,因为它正在等待连接需要建立。
检查ServerSocket.accept()方法注释
"
侦听与此套接字的连接并接受
该方法会一直阻塞,直到建立连接。”
您正在同一线程(主线程)中启动ServerSocket(侦听器)。因此,主线程将等待连接建立,因为它正在等待连接需要建立。
检查ServerSocket.accept()方法注释
"
侦听与此套接字的连接并接受
该方法会一直阻塞,直到建立连接。”
您正在同一线程(主线程)中启动ServerSocket(侦听器)。因此,主线程将等待连接建立,因为它正在等待连接需要建立。
检查ServerSocket.accept()方法注释
"
侦听与此套接字的连接并接受
该方法会一直阻塞,直到建立连接。”
您正在同一线程(主线程)中启动ServerSocket(侦听器)。因此,主线程将等待连接完成Q:您是否尝试从客户端“连接”到端口47000?如果需要,可以在命令提示符下使用Windowstelnet localhost 47000
。它正在启动。它只是在你接受连接之前不会打印任何东西,也就是说,该消息位于错误的位置。是什么让你认为你不能使用零作为绑定端口?问:你是否尝试从客户端“连接”到47000端口?如果需要,可以在命令提示符下使用Windowstelnet localhost 47000
。它正在启动。它只是在你接受连接之前不会打印任何东西,也就是说,该消息位于错误的位置。是什么让你认为你不能使用零作为绑定端口?问:你是否尝试从客户端“连接”到47000端口?如果需要,可以在命令提示符下使用Windowstelnet localhost 47000
。它正在启动。它只是在你接受连接之前不会打印任何东西,也就是说,该消息位于错误的位置。是什么让你认为你不能使用零作为绑定端口?问:你是否尝试从客户端“连接”到47000端口?如果需要,可以在命令提示符下使用Windowstelnet localhost 47000
。它正在启动。它只是在你接受连接之前不会打印任何东西,也就是说,该消息位于错误的位置。是什么让您认为不能使用零作为绑定端口?
socket = serverSocket.accept();