import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class HttpEngine {
private ServerSocket serverSocket;
public void start() throws IOException {
serverSocket = new ServerSocket(8080, 3);
while(true) {
Socket socket = serverSocket.accept();
parseRequest(socket);
parseResponse(socket);
socket.close();
}
}
public void parseRequest(Socket socket) throws IOException {
InputStream is = socket.getInputStream();
byte[] b = new byte[is.available()];
is.read(b);
//is.close();
}
public void parseResponse(Socket socket) throws IOException {
OutputStream os = socket.getOutputStream();
File file = new File("D:\\document.pdf");
StringBuilder httpHead = new StringBuilder();
httpHead.append("HTTP/1.1 200 OK\r\n")
.append("Server: Microsoft-IIS/5.0\r\n")
.append("ContentType: application/x-download\r\n")
.append("Content-Disposition: attachment;filename=" + file.getName()+ "\r\n")
.append("Cache-control: private\r\n\r\n");
os.write(httpHead.toString().getBytes());
FileInputStream is = new FileInputStream(file);
byte[] b = new byte[1024];
while(is.read(b) != -1) {
os.write(b);
}
os.flush();
os.close();
}
public static void main(String args[]) throws Exception {
new HttpEngine().start();
}
}
在浏览器地址栏中打http://localhost:8080就能得到下载文件了
分享到:
相关推荐
JavaScript 可以通过事件监听(如 `onclick`、`onmouseover`)来响应用户的操作,也可以与服务器进行交互,实现 AJAX 功能。在这个项目中,JavaScript 可能会与 CSS 配合,改变元素的样式或动画效果。 `css` 文件夹...
例如,有些网站可能使用了服务器端渲染或AJAX来动态加载内容,这时就需要理解这些技术的工作原理,并找到合适的方法获取到这些数据。 总的来说,"网站整站下载仿站利器"是一个强大的工具,可以帮助开发者快速获取...
- 安装Openfire:首先,需要在服务器上下载并安装Openfire服务器,这通常涉及到解压安装包、运行安装程序和配置服务器参数。 - 数据库连接:Openfire支持多种数据库,如MySQL、PostgreSQL等,需要配置相应的数据库...
【极致CMS精仿小黑猿资源网源码免费下载.zip】是一个包含软件开发资源的压缩包,主要用于构建类似“小刀娱乐网”、“小高教学网”或“资源吧”的网站。这个源码是基于jizhiCMS(极致内容管理系统)进行精仿设计的,...
1. **网站抓取原理**:这些工具通常通过HTTP或HTTPS协议与服务器交互,模拟浏览器的行为,发送请求并接收响应,然后保存所有收到的资源。 2. **爬虫技术**:网站下载工具通常基于网络爬虫,能自动遍历网站的链接,...
杰奇V2.2版本的原创小说系统是基于仿磨铁中文网的二次开发版,这个系统的完整版网站源码如今可以通过下载的方式获得。这个系统是专门为小说网站设计的,它包含了网站搭建所需的所有核心文件,开发者可以根据自身需求...
- 数据模拟:对于动态数据,可能需要模拟服务器响应,以便在本地运行时呈现正确内容。 需要注意的是,使用仿站小工具必须遵循版权法和道德规范,只应用于学习、研究或个人项目,不可用于非法复制他人作品。同时,...
【标题】"957241213619966仿原神官网.zip" 提供的是一款仿造原神官网的项目压缩包,可能是为了学习、研究或者教学目的,帮助用户了解和构建类似游戏官方网站的过程。原神是由米哈游开发的一款开放世界冒险游戏,其...
NZ下载站整站源码NZ260是一款用于构建在线资源下载网站的源代码,它模仿了"模板下载吧"的界面设计和功能布局。在分析这个源码时,我们可以探讨多个IT领域的知识点: 1. **网站框架与编程语言**: NZ260源码可能...
这涉及到`AsyncTask`、`Handler`、`Thread`或`ExecutorService`的使用,或者使用现代的`LiveData`和`ViewModel`配合`Room`库实现响应式编程。 7. **推送通知**:为了实现实时消息推送,开发者可能使用了`Firebase ...
2. Servlet:Servlet是Java服务器端程序,主要处理HTTP请求,处理业务逻辑并生成动态内容。"原神官网"的Servlet可能负责处理用户的登录注册、新闻发布、评论提交等操作。 3. JSP(JavaServer Pages):JSP是Java的视...
在仿制过程中,CSS文件将包含天空网的颜色方案、字体样式、布局和响应式设计等内容。开发者需要分析原始网站的CSS规则,并在自己的源码中复制这些规则,以确保界面的视觉一致性。 JavaScript则是实现交互性和动态...
6. **响应式设计**: 为了适应不同设备和屏幕尺寸,仿微信聊天界面应采用响应式设计。这通常通过媒体查询(`@media`)和百分比单位来实现,确保界面在手机、平板和桌面电脑上都能良好显示。 7. **本地存储**: HTML5...
"仿世纪佳缘整站 源码"这个标题表明这是一个与世纪佳缘网站类似的完整网站源代码。世纪佳缘是中国知名的婚恋交友网站,因此这里的“仿”指的是该源码旨在复制或模仿世纪佳缘网站的功能、界面设计以及用户体验。整站...
微信小程序是腾讯公司推出的一种轻量级应用开发平台,它无需下载安装即可使用,方便快捷。小程序的出现,极大地丰富了移动互联网的生态,为开发者提供了更广阔的创新空间。在这个项目中,“原生微信小程序源码 - 仿...
ASP.NET仿百度网盘文件分享文件管理系统是一个基于.NET平台开发的网络应用程序,它模拟了百度网盘的核心功能,使得用户能够上传、下载文件,并具备了文件分享的能力。此外,该系统还设置了会员权限机制,区分普通...
“环境php5.6 sql5.5”是指后端服务器环境,使用PHP 5.6版本作为服务器端脚本语言,处理和响应客户端请求。PHP是一种广泛用于Web开发的开源脚本语言,特别适合动态网站和应用程序的创建。同时,SQL5.5指的是MySQL...
3. **响应式设计**:现代网站通常需要具备响应式能力,即能适应不同设备的屏幕尺寸。仿站时,要确保设计的网站能在手机、平板和桌面电脑等不同设备上正常显示。 4. **JavaScript与jQuery**:这两者都是实现网页动态...
当然,纯前端实现也存在一些局限性,比如对于短信的发送和接收,如果需要与后端服务器进行交互处理真实的消息数据,则需要借助AJAX(异步JavaScript和XML)技术来实现。但总体而言,原生js仿手机发送短信界面效果...
同时,由于PHP语言的高效率,这款论坛系统源码在服务器响应和数据处理上表现优异,抗攻击能力也得到了加强。 音频视频内容的发布也是现代论坛系统的重要组成部分。“最新版仿天涯论坛系统源码”支持音频视频发布...