{"id":1584,"date":"2020-11-18T17:29:45","date_gmt":"2020-11-18T09:29:45","guid":{"rendered":"https:\/\/www.yusian.com\/blog\/?p=1584"},"modified":"2020-11-18T17:29:45","modified_gmt":"2020-11-18T09:29:45","slug":"%e4%bd%bf%e7%94%a8socket%e9%80%9a%e8%ae%af%e5%ae%9e%e7%8e%b0%e7%ae%80%e5%8d%95%e7%9a%84web%e6%9c%8d%e5%8a%a1%e5%99%a8","status":"publish","type":"post","link":"https:\/\/www.yusian.com\/blog\/java\/2020\/11\/18\/1729451584.html","title":{"rendered":"\u4f7f\u7528Socket\u901a\u8baf\u5b9e\u73b0\u7b80\u5355\u7684Web\u670d\u52a1\u5668"},"content":{"rendered":"<pre><code class=\"language-java line-numbers\">package com.yusian.socket;\n\nimport java.io.*;\nimport java.net.ServerSocket;\nimport java.net.Socket;\n\npublic class WebServer {\n    public static void main(String[] args) {\n        try {\n            \/\/ \u5f00\u542f\u7aef\u53e3\u76d1\u542c\n            ServerSocket ss = new ServerSocket(8080);\n            while (true) {\n                \/\/ \u7b49\u5f85\u5ba2\u6237\u7aef\u8bf7\u6c42\n                Socket socket = ss.accept();\n                \/\/ \u83b7\u53d6\u63a5\u6536\u5230\u7684\u5b57\u8282\u6d41\u5e76\u4f7f\u7528\u7f13\u5b58\u5b57\u7b26\u6d41\u7c7b\u6362\u884c\u8bfb\u53d6\n                InputStream is = socket.getInputStream();\n                InputStreamReader isr = new InputStreamReader(socket.getInputStream());\n                BufferedReader br = new BufferedReader(isr);\n                \/\/ \u8bfb\u53d6\u8bf7\u6c42\u4fe1\u606f\u7684\u7b2c\u4e00\u884c\u83b7\u53d6\u6587\u4ef6\u540d\n                String path = br.readLine().split(\" \")[1];\n                path = path.substring(1);\n                System.out.println(path);\n                File file = new File(path);\n\n                \/\/ \u83b7\u53d6Socket\u7684\u8f93\u51fa\u5b57\u8282\u6d41\uff0c\u8f93\u5165Http\u7684\u54cd\u5e94\u5934\u4fe1\u606f\n                OutputStream os = socket.getOutputStream();\n                os.write(\"HTTP\/1.1 200 OK\\r\\n\".getBytes());\n                os.write(\"Content-Type:text\/html\\r\\n\".getBytes());\n                os.write(\"\\r\\n\".getBytes());\n                \/\/ \u5982\u679c\u8bf7\u6c42\u7684\u6587\u4ef6\u4e0d\u5b58\u5728\u5219\u8fd4\u56de404\uff0c\u5426\u5219\u8bfb\u53d6\u672c\u5730\u6587\u4ef6\u8fd4\u56de\u7ed9\u5ba2\u6237\u7aef\n                if (!file.exists()) {\n                    os.write(\"404\".getBytes());\n                } else {\n                    FileInputStream fis = new FileInputStream(file);\n                    int length = 0;\n                    byte[] buffer = new byte[1024];\n                    while ((length = fis.read(buffer)) != -1) {\n                        os.write(buffer, 0, length);\n                    }\n                }\n                socket.shutdownOutput();\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>package com.yusian.socket; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class WebServer { public static void main(String[] args) { try { \/\/ \u5f00\u542f\u7aef\u53e3\u76d1\u542c ServerSocket ss = new ServerSocket(8080); while (true) { \/\/ \u7b49\u5f85\u5ba2\u6237\u7aef\u8bf7\u6c42 Socket socket = ss.accept(); \/\/ \u83b7\u53d6\u63a5\u6536\u5230\u7684\u5b57\u8282\u6d41\u5e76\u4f7f\u7528\u7f13\u5b58\u5b57\u7b26\u6d41\u7c7b\u6362\u884c\u8bfb\u53d6 InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(socket.getInputStream()); BufferedReader br = new BufferedReader(isr); \/\/ \u8bfb\u53d6\u8bf7\u6c42\u4fe1\u606f\u7684\u7b2c\u4e00\u884c\u83b7\u53d6\u6587\u4ef6\u540d String [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[269,265,268],"class_list":["post-1584","post","type-post","status-publish","format-standard","hentry","category-java","tag-http","tag-socket","tag-web"],"_links":{"self":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/1584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/comments?post=1584"}],"version-history":[{"count":0,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/1584\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/media?parent=1584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/categories?post=1584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/tags?post=1584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}