Skip to content

Instantly share code, notes, and snippets.

@kimhu
Last active August 29, 2015 14:02
Show Gist options
  • Save kimhu/743889b8c0097fc4d859 to your computer and use it in GitHub Desktop.
Save kimhu/743889b8c0097fc4d859 to your computer and use it in GitHub Desktop.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testfile;
import com.sun.corba.se.spi.orbutil.threadpool.NoSuchWorkQueueException;
import com.sun.corba.se.spi.orbutil.threadpool.ThreadPool;
import com.sun.corba.se.spi.orbutil.threadpool.WorkQueue;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author kim_hu
*/
public class MuiltiplySocketServer {
public static void main(String[] args) {
MuiltiplySocketServer server = new MuiltiplySocketServer();
server.service();
}
private void service() {
ServerSocket server = null;
try {
server = new ServerSocket(80);
while (true) {
Socket socket = server.accept();
new Thread(new Task(socket)).start();
}
} catch (IOException ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (server != null) {
server.close();
}
} catch (IOException ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
class Task implements Runnable {
private Socket client;
public Task(Socket socket) {
this.client = socket;
}
private void handleSocket() {
BufferedReader reader = null;
PrintWriter out = null;
try {
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream());
String header = reader.readLine();
// out.println("HTTP/1.1 200 OK");
// out.println("Content-Type:text/html;charset=utf-8");
// out.println();
// out.println("<head></head>");
// out.println("<body>");
// out.println("<h1>Hello Word!</h1>");
// out.println("</body>");
// out.flush();
client.getOutputStream().write(new String("HTTP/1.1 200 OK\r\n").getBytes());
client.getOutputStream().write(new String("Content-Type:text/html;charset=utf-8\r\n").getBytes());
client.getOutputStream().write(new String("\r\n").getBytes());
client.getOutputStream().write(new String("<head></head>\r\n").getBytes());
client.getOutputStream().write(new String("<body>\r\n").getBytes());
client.getOutputStream().write(new String("hello word\r\n").getBytes());
client.getOutputStream().write(new String("</body>\r\n").getBytes());
client.getOutputStream().flush();
client.close();
// while (true) {
// handleRead(reader, header);
// handleWrite(out, header);
// }
} catch (IOException ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (reader != null) {
reader.close();
}
if (out != null) {
out.close();
}
client.close();
} catch (IOException ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private boolean handleRead(BufferedReader reader, String header) {
try {
System.out.println(header);
if (!header.contains("HTTP")) {
String content = reader.readLine();
System.out.println(content);
}
} catch (IOException ex) {
Logger.getLogger(MuiltiplySocketServer.class.getName()).log(Level.SEVERE, null, ex);
}
return true;
}
private boolean handleWrite(PrintWriter out, String header) {
if (header.contains("HTTP")) {
out.println("HTTP/1.1 200 OK");
out.println("Content-Type:text/html;charset=utf-8");
out.println("<head></head>");
out.println("<body>");
out.println("<h1>Hello Word!</h1>");
out.println("</body>");
out.flush();
} else {
Scanner scan = new Scanner(System.in);
String reply = scan.nextLine();
out.println(reply);
}
return true;
}
@Override
public void run() {
handleSocket();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment