Where people come together to learn, code, and play. Custom-built HTTP server, site generator, and website from scratch using no external libraries. Goal is to be as minimalistic and fun as possible.
http://projectdivar.com
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
2.4 KiB
40 lines
2.4 KiB
try {
|
|
socket = new ServerSocket(sigPlace.PORT);
|
|
System.out.println("Listening on port "+sigPlace.PORT+".");
|
|
while (true) {
|
|
try (Socket client = socket.accept()) {
|
|
System.out.println("New client connection detected: "+client.toString());
|
|
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream(),"ISO-8859-1"));
|
|
String requestLine,line;
|
|
ZonedDateTime modifiedDate = null;
|
|
String boundary=null;
|
|
boolean truncateUntilBoundary=false;
|
|
String filename=null;
|
|
OutputStream stream = null;
|
|
boolean firstLine=true;
|
|
requestLine=in.readLine(); //Read the first line, this should be our request.
|
|
if (requestLine!=null) {
|
|
String[] splitter = requestLine.split(Pattern.quote(" "));
|
|
boolean ISPOST = splitter[0].equals("POST");
|
|
if (splitter.length==3) {
|
|
while (in.ready()) {
|
|
line=in.readLine();
|
|
if (ISPOST) {
|
|
if (boundary!=null) {
|
|
if (!truncateUntilBoundary) {
|
|
System.out.println(line);
|
|
|
|
if (boundary.length()>0) {
|
|
if (line.equals(boundary)) {
|
|
truncateUntilBoundary=true;
|
|
}
|
|
}
|
|
} else
|
|
if (line.contains("Content-Disposition: ")||line.contains("Content-Type: ")) {
|
|
if (line.contains("filename=")) {
|
|
filename=line.substring(line.indexOf("filename=")+"filename=".length()+1);
|
|
filename = filename.substring(0,filename.length()-1);
|
|
} else {
|
|
System.out.println(line);
|
|
}
|
|
} else {
|
|
|