资源简介
JAVA实现http服务端和客户端
服务器功能 提供HTML,JPG 等MIME 类型的资源
客户端功能 访问服务器,获取HTML 和JPG 资源,保存到本地
磁盘
访问服务器,获取WMV 等其他资源类型,保存到
本地磁盘

代码片段和文件信息
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.StringTokenizer;
/**
* Created by Lawrence on 3/14/16.
*/
public class Client {
public static void main(String[] args) {
Socket client;
Scanner scanner = new Scanner(System.in);
try {
String fileName;
String host;
int port;
System.out.println(“Please input HTTP link:“);
host = scanner.nextLine();
StringTokenizer address = new StringTokenizer(host “/“);
host = address.nextToken();
System.out.println(“Please input Port:“);
port = scanner.nextInt();
client = new Socket(host port);
PrintStream writer = new PrintStream(client.getOutputStream());
fileName = address.hasMoreTokens() ? address.nextToken() : “index.html“;
writer.println(“GET /“ + fileName + “ HTTP/1.1“);
writer.println(“Host:“ + host);
writer.println(“Connection:keep-alive“);
writer.println();
writer.flush();
DataInputStream in = new DataInputStream(client.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String firstLineOfResponse = reader.readLine();
String secondLineOfResponse = reader.readLine();
String thirdLineOfResponse = reader.readLine();
String fourthLineOfResponse = reader.readLine();
if(firstLineOfResponse.split(“ “)[1].equals(“200“)) {
File file = new File(“./get/“ + fileName);
if(!file.exists()) {
while(!file.createNewFile()) {
System.out.println(“Failed to create file “ + fileName);
}
} else {
while(!file.setLastModified(System.currentTimeMillis())) {
System.out.println(“Failed to edit file “ + fileName);
}
}
byte[] buffer = new byte[1024];
OutputStream fout = new FileOutputStream(file);
int length = in.read(buffer);
System.out.println(length);
while(length != -1) {
// for(byte i: buffer) {
// System.out.print(i);
// }
fout.write(buffer 0 length);
length = in.read(buffer);
}
in.close();
fout.close();
} else {
System.out.println(fourthLineOfResponse);
}
reader.close();
writer.close();
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 24 2017-03-17 16:58 HTTPServer-master\.gitignore
....... 2865 2017-03-17 16:58 HTTPServer-master\src\Client.java
....... 515 2017-03-17 16:58 HTTPServer-master\src\HTTPServer.java
....... 2841 2017-03-17 16:58 HTTPServer-master\src\ServerThread.java
....... 3058 2017-03-17 16:58 HTTPServer-master\src\TestClient.java
....... 3239 2017-03-17 16:58 HTTPServer-master\src\TestServer.java
目录 0 2018-01-17 10:33 HTTPServer-master\src
目录 0 2017-03-17 16:58 HTTPServer-master
----------- --------- ---------- ----- ----
12542 8
相关资源
- JavaHTTP协议实现
- jsp 统计在线人数利用HttpSessionListene
- commons-codec-1.3.jar和commons-httpclient-3.0
- Java HttpClient 4.x Jar包
- httpcore-4.3.2.jar和httpmime-4.3.5.jar
- 基于http的Java爬虫爬取百度新闻
- Android通过http连接mysql
- JAVA 写的http服务器
- commons-httpclient-3.0
- HTTP服务端接口模拟工具-HttpServerMock
- apache httpclient jar包
- Android 7.0+抓包https突破ssl-pinning方案抓
- ApacheJMeter_http.jar与ApacheJMeter_core.jar.
- 模拟登录教务系统 抓取课表和成绩
- 模拟登录教务系统 抓取课表和成绩
- Android Http URL Connection获取数据并JSON解
- httpcomponents jar包
- httpclient-4.2.1.jar全部架包
- HttpClient配置SSL绕过https证书
- okhttp上传文件包含服务端java
- OkHttp3请求天气预报与Gson处理复杂JS
- Android网络请求
- MultipartEntityBuilder方法需要调用的jar包
- Android操作HTTP实现与服务器通信
- OkHttp上传文件并带进度条
- okHttp文件
- httpclient 相关的 3个jar包(commons-http
- httpclient 全部JAR包
- Android解析http常见数据格式的代码
- java httpclient https或http及文件中转上传
评论
共有 条评论