废话少说,直接上代码。

编程语言: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/,如下图:

最新文章

  1. 2015最新德淘W家(Windeln.de)新人优惠码wcode0520,赠1000积分,可抵10欧元
  2. 通过SharePoint Designer对SharePoint 2010的Master Page进行自定制
  3. 随着ScrollView的滑动,渐渐的执行动画View
  4. html中表格table的内容居中显示
  5. SharePoint表单和工作流 - Nintex篇(三)
  6. ios8中的UIScreen
  7. Quality Center配置邮箱服务
  8. RE:转:一些不常用的html代码
  9. 扩展:gridview 空数据时显示表头
  10. 【ZOJ2112】【整体二分+树状数组】带修改区间第k大
  11. java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
  12. fopen()函数以&quot;a+&quot;方式打开一个不存在的文件后读写出现问题
  13. React复习小结(一)
  14. Win10系统下安装Oracle服务器和Oracle客户端
  15. C++类静态成员与类静态成员函数
  16. Maven文件配置
  17. Scrapy运行流程
  18. Js基础知识4-函数的三种创建、四种调用(及关于new function()的解释)
  19. 铁轨(UVa 514)
  20. nginx 反向代理https

热门文章

  1. 【Java】【转】在命令行中编译和运行java
  2. Linux 系统的主机别名文件
  3. CSS背景图片垂直居中center不起效果完美解决
  4. python面试十题
  5. Hadoop HBase概念学习系列之HBase表的一些设置(强烈推荐好好领悟)(十三)
  6. AltiumDesigner17学习指南
  7. 我在德国做SAP CRM One Order redesign工作的心得
  8. 使用transient关键字解决ehcache序列化错误
  9. http_load安装和使用
  10. linux-top命令查看内存CPU