我目前正在开发一个简单的代理服务器,它从浏览器接收 http 请求,对其进行处理,然后将其转发到所需的 Web 服务器。
我尝试从浏览器连接的套接字的输入流中获取请求,一切都很好,除了在接收到最后一个数据块后流卡住了。
我的代码其实很简单,如下图:
ServerSocket servSocket = new ServerSocket(8282);
Socket workSocket = servSocket.accept();
InputStream inStream = workSocket.getInputStream();
byte[] buffer = new byte[1024];
int numberRead = 0;
while ((numberRead = inStream.read(buffer, 0, 1024)) != -1){
System.out.println(new String(buffer));
}
即使请求接收完成,循环也无法退出。
有没有办法解决这个问题?
提前感谢您的任何建议。