import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Main {
//自制简单的Web服务器
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(9998);
while (!serverSocket.isClosed()) {
System.out.println("=====端口服务端已建立,正在等待连接=====");
Socket socket = serverSocket.accept();
OutputStream outputStream = socket.getOutputStream();
outputStream.write("hello i an tomcat\n".getBytes());
outputStream.close();
socket.close();
}
serverSocket.close();
}
}
java的Socket连接后在浏览器输入地址端口后发现localhost发送的响应无效
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。
这个问题可能是因为在浏览器中直接输入地址和端口时,默认使用的是HTTP协议进行连接,而你的代码中只是简单的发送了一个字符串,并没有按照HTTP协议的格式进行返回响应。
要解决这个问题,你可以修改你的代码,按照HTTP协议的格式返回一个响应。示例如下:
import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class Main { //自制简单的Web服务器 public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(9998); while (!serverSocket.isClosed()) { System.out.println("=====端口服务端已建立,正在等待连接====="); Socket socket = serverSocket.accept(); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String request = reader.readLine(); System.out.println("收到请求:" + request); OutputStream outputStream = socket.getOutputStream(); // 根据请求的路径判断返回的内容 if (request.startsWith("GET")) { String response = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nhello i am tomcat"; outputStream.write(response.getBytes()); } else { String response = "HTTP/1.1 404 Not Found\r\nContent-Type: text/html\r\n\r\n404 Not Found"; outputStream.write(response.getBytes()); } outputStream.close(); reader.close(); socket.close(); } serverSocket.close(); } }
在上面的代码中,首先通过
BufferedReader
读取了浏览器发送的请求,然后根据请求的内容判断返回的内容。如果请求以"GET"开头,则返回一个200 OK的响应,内容为"hello i am tomcat";否则返回一个404 Not Found的响应,内容为"404 Not Found"。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 机器学习预测遇到的目标函数问题
- ¥15 python的EOFError该怎么解决?
- ¥15 Fluent,液体进入旋转区域体积分数不连续
- ¥15 java linux下将docx文件转pdf
- ¥15 maven无法下载依赖包
- ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
- ¥15 layui数据重载无效
- ¥15 寻找了解qq家园纵横四海的程序猿。
- ¥15 optisystem
- ¥15 VB.NET画图时的撤销编程