tomcat启动慢?自己动手打造轻量web服务器(一)
2024-09-04 10:53:14
废话少说,直接上代码。
编程语言:kotlin
import java.net.ServerSocket
import java.net.Socket fun main(args:Array<String>){
val mServerSocket = ServerSocket(8080)
while (true) {
WebThread(mServerSocket.accept()).start()
}
}
class WebThread(val socket: Socket):Thread(){
override fun run() {
socket.getOutputStream().use {
it.write("HTTP/1.1 200 OK".toByteArray())
it.write("\n".toByteArray())
it.write(("content-type:text/html").toByteArray())
it.write("\n".toByteArray())
it.write("\n".toByteArray())
it.write("<h1>Hello World</h1>".toByteArray())
}
}
}
正如所见,实际上web服务器也是个socket,只要按照http协议返回正确的格式就可以了,下篇介绍url路由。
打开浏览器在地址栏输入http://127.0.0.1:8080/,如下图:
最新文章
- 2015最新德淘W家(Windeln.de)新人优惠码wcode0520,赠1000积分,可抵10欧元
- 通过SharePoint Designer对SharePoint 2010的Master Page进行自定制
- 随着ScrollView的滑动,渐渐的执行动画View
- html中表格table的内容居中显示
- SharePoint表单和工作流 - Nintex篇(三)
- ios8中的UIScreen
- Quality Center配置邮箱服务
- RE:转:一些不常用的html代码
- 扩展:gridview 空数据时显示表头
- 【ZOJ2112】【整体二分+树状数组】带修改区间第k大
- java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
- fopen()函数以";a+";方式打开一个不存在的文件后读写出现问题
- React复习小结(一)
- Win10系统下安装Oracle服务器和Oracle客户端
- C++类静态成员与类静态成员函数
- Maven文件配置
- Scrapy运行流程
- Js基础知识4-函数的三种创建、四种调用(及关于new function()的解释)
- 铁轨(UVa 514)
- nginx 反向代理https