// Main.java
public class Main {
public static void main
(String[] args
) { new Main();
}
public Main() {
SocketManager sm = SocketManager.getInstance();
sm.open();
sm.close();
}
}
// l.java
public class l {
public static void og
(Object...
o) { StringBuilder sb = new StringBuilder("*");
for (int i=0; i<o.length; i++) {
sb.append(" ");
sb.append(o[i]);
}
System.
out.
println(sb.
toString()); }
}
// SocketManager.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
public class SocketManager {
private static final SocketManager instance = new SocketManager();
public static final SocketManager getInstance() {
return instance;
}
private SocketManager() {
try {
ss.setSoTimeout(5000);
l.og("Error: 서버 소켓의 생성에 실패했습니다.");
}
}
public void open() {
try {
l.og("Wait Client...");
l.og("Client connected: " + socket.getInetAddress().getHostAddress());
is = socket.getInputStream();
while ((s=br.readLine()) != null) {
l.og(s);
if (s.length() == 0) break;
}
byte[] buffer = new byte[16];
for (int i=0; i<buffer.length; i++) {
}
for (int i=0; i<buffer.length*3-1; i++) {
}
for (int i=0; i<buffer.length; i++) {
}
// l.og("Data Thread start.");
// DataThread dt = new DataThread();
// dt.start();
int r;
while ((r=is.read(buffer)) == buffer.length) {
if (r < 0) break;
for (int i=0; i<buffer.length; i++) {
switch (buffer[i]) {
case 0:
case 10:
case 13:
buffer[i] = '.';
break;
}
}
}
for (int i=0; i<buffer.length; i++) {
switch (buffer[i]) {
case 0:
case 10:
case 13:
buffer[i] = '.';
break;
}
}
bw.write("HTTP/1.1 200 OK"); bw.newLine();
bw.write("Content-Type: text/html; Charset: UTF-8"); bw.newLine();
bw.newLine();
bw.write("<!DOCTYPE html>"); bw.newLine();
bw.write("<html>"); bw.newLine();
bw.write("\t<head>"); bw.newLine();
bw.write("\t\t<title>title</title>"); bw.newLine();
bw.write("\t\t<style>"); bw.newLine();
bw.write("\t\t\tbody {"); bw.newLine();
bw.write("\t\t\t\tmargin: 0px;"); bw.newLine();
bw.write("\t\t\t\tpadding: 0px;"); bw.newLine();
bw.write("\t\t\t\tfont-family: Dotum;"); bw.newLine();
bw.write("\t\t\t\tfont-size: 12px;"); bw.newLine();
bw.write("\t\t\t}"); bw.newLine();
bw.write("\t\t</style>"); bw.newLine();
bw.write("\t\t<script>console.log(1);</script>"); bw.newLine();
bw.write("\t</head>"); bw.newLine();
bw.write("\t<body>"); bw.newLine();
bw.write("\t\thello"); bw.newLine();
bw.write("\t</body>"); bw.newLine();
bw.write("</html>"); bw.newLine();
bw.close();
br.close();
socket.close();
ss.close();
} catch (SocketTimeoutException e) {
l.og("Accept timeout.");
e.printStackTrace();
}
}
public void close() {
if (bw != null) {
try {
bw.close();
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (br != null) {
try {
br.close();
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (ss != null && ss.isClosed() == false) {
try {
ss.close();
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}