Last active
August 29, 2015 14:02
-
-
Save kimhu/743889b8c0097fc4d859 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* 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