Trouble sending HTTP response with Java Socket

前端 未结 4 1634
伪装坚强ぢ
伪装坚强ぢ 2021-01-14 00:55

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

4条回答
  •  长情又很酷
    2021-01-14 01:40

    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\n

    this is output

    nameage>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(); } } }

提交回复
热议问题