I\'ve been trying to write the beginnings of a simple web server, but can\'t seem to get the response to get sent. I\'ve tried every type of Output stream imaginable but no
The below code will solve your problem:
package com.cs.sajal;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class TestCls {
public static void main(String[] args) {
boolean flag = false;
try {
ServerSocket ss = new ServerSocket(8080);
if (ss.isBound()) {
while (flag = true) {
final Socket s = ss.accept();
Thread t1=new Thread(new Runnable (){String line = null;public void run(){try{ InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}});
Thread t2=new Thread(new Runnable (){String line = null;public void run(){try{ OutputStream os = s.getOutputStream();
Scanner sc=new Scanner(System.in);
String inp=null;
String t="HTTP/1.1 200 OK\r\n";
byte[]s=t.getBytes("UTF-8");
os.write(s);
t="Content-Length: 788\r\n";
s=t.getBytes("UTF-8");
os.write(s);
t="Content-Type: text/html\r\n\r\n";
s=t.getBytes("UTF-8");
os.write(s);
t="\r\n\r\nthis is output
name age> height
\r\n\r\n";
s=t.getBytes("UTF-8");
os.write(s);
t="Connection: Closed";
s=t.getBytes("UTF-8");
os.write(s);
os.flush();
}
catch(Exception e)
{
e.printStackTrace();
}
}});
t1.start();
t2.start();t1.join();
t2.join();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}