【发布时间】:2017-10-18 15:12:23
【问题描述】:
我想在我自己的 PC 上启动一个服务器来获取 GET/POST HTML 请求。
这是我使用的java代码:
import java.awt.Toolkit;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class SimpleHTTPServer {
public static void main(String args[]) throws Exception {
final ServerSocket server = new ServerSocket(4000);
int number_req = 0;
System.out.println("Listening for connection on port 4000 ....");
while (true) {
final Socket client = server.accept(); // Accepting connection
InputStreamReader isr = new InputStreamReader(client.getInputStream());
BufferedReader reader = new BufferedReader(isr);
String line = reader.readLine();
while (!line.isEmpty()) {
System.out.println(line);
line = reader.readLine();
}
// print number of request, date and time
Toolkit.getDefaultToolkit().beep();
SimpleDateFormat formatTime = new SimpleDateFormat ("E dd.MM.yyyy 'at' hh:mm:ss a");
Date date = new Date(System.currentTimeMillis());
System.out.println("Number of requests: " + number_req + " \n\tin "+ formatTime.format(date));
}
}
}
我尝试从浏览器网络向我的 ip:port 发送 HTML 请求,如下所示:
http://79.49.72.102:4000
但我总是得到 ERR_CONNECTION_REFUSED。 我尝试使用 localhost:4000 并收到了请求。 我还在路由器上使用了 No-IP 并设置了端口转发,但似乎没有任何效果。
我该怎么办?
【问题讨论】:
-
你读过任何关于http协议的东西吗?
-
另一个问题是强制 JAVA 绑定到网络 IP 地址。这篇文章可能对stackoverflow.com/questions/32362627/…有帮助