golang为LigerUI编写简易版本web服务器
package main import (
"io/ioutil"
"log"
"net/http"
"os"
) var zpath string = "D:/Download/jQuery LigerUI V1.3.2/Source/" //LigerUI安装路径
var zport string = ""
var zsource_file = "source.config"
var zport_file = "port.config"
var staticHandler http.Handler func Init() { if sourceExist(zport_file) {
log.Println("Port file is " + zport_file)
ztemp_port := filetostr(zport_file)
if ztemp_port != "" {
zport = ztemp_port
}
} else {
log.Println("Port file not exist ,please set server port in file " + zport_file)
log.Println("Server will use default port 80")
} if sourceExist(zsource_file) {
log.Println("Config file is " + zsource_file)
ztemp_path := filetostr(zsource_file)
if ztemp_path != "" {
zpath = ztemp_path
}
} else {
log.Println("Source file not exist ,please set LigerUI source path in file " + zsource_file)
log.Println("Server will use default LigerUI path")
}
staticHandler = http.FileServer(http.Dir(zpath))
} func indexPage(w http.ResponseWriter, req *http.Request) {
log.Println(req.URL.Path)
if req.URL.Path != "/" {
staticHandler.ServeHTTP(w, req)
return
}
//处理主页127.0.0.1
req.URL.Path = "/index.htm"
staticHandler.ServeHTTP(w, req)
} func main() {
Init() log.Println("LigerUI Source Path:")
log.Println(zpath) zport_str := ""
if zport != "" {
zport_str = ":" + zport
}
log.Println("Start LigerUI Server " + "127.0.0.1" + zport_str) http.HandleFunc("/", indexPage) err := http.ListenAndServe(":"+zport, nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
} } func sourceExist(filename string) bool {
_, err := os.Stat(filename)
return err == nil || os.IsExist(err)
} func filetostr(zfilename string) string {
zbyte, err := ioutil.ReadFile(zfilename)
zstr := ""
if err == nil {
zstr = string(zbyte) }
return zstr
}

golang为LigerUI编写简易版本web服务器的更多相关文章
- 超简易静态Web服务器
使用 HttpListener 写的一个超简易静态Web服务器 开发环境:VS2010 + .NET2.0 http://files.cnblogs.com/zjfree/EasyIIS.rar
- 第十八篇:简易版web服务器开发
在上篇有实现了一个静态的web服务器,可以接收web浏览器的请求,随后对请求消息进行解析,获取客户想要文件的文件名,随后根据文件名返回响应消息:那么这篇我们对该web服务器进行改善,通过多任务.非阻塞 ...
- Tinywebserver:一个简易的web服务器
这是学习网络编程后写的一个练手的小程序,可以帮助复习I/O模型,epoll使用,线程池,HTTP协议等内容. 程序代码是基于<Linux高性能服务器编程>一书编写的. 首先回顾程序中的核心 ...
- 【ASP.NET】编写自己的Web服务器
自己写一个简单的Web服务器,对加深理解Http协议有很好的帮助,下面就看一下一个基于TcpListener的Web服务器: class Program { static void Main(stri ...
- 基于C语言的Socket网络编程搭建简易的Web服务器(socket实现的内部原理)
首先编写我们服务器上需要的c文件WebServer.c 涉及到的函数API: int copy(FILE *read_f, FILE * write_f) ----- 文件内容复制的方法 int Do ...
- Centos7源码安装httpd2.4版本web服务器
我们的系统平台是在centos7.5的环境下安装httpd2.4版本的软件,2.4版本的软件有一个特征就是需要安装arp包以及arp-util包才可以. 1.首先是下载httpd2.4版本的包,以及安 ...
- go编写简单的web服务器
package main import ( "fmt" "log" "net/http" "strings" ) //h ...
- micropython TPYBoard v201 简易的web服务器的实现过程
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 TPYBoard v201开发板上搭载了以太网 ...
- 基于Docker和Golang搭建Web服务器
1 场景描述 基于centos7的docker镜像搭建golang开发环境 在docker容器内,使用golang实现一个Web服务器 启动docker容器,并在容器内启动Web服务器 我购买了一个最 ...
随机推荐
- 2016年10月28日 星期五 --出埃及记 Exodus 19:13
2016年10月28日 星期五 --出埃及记 Exodus 19:13 He shall surely be stoned or shot with arrows; not a hand is to ...
- (4)Redis 资料
Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景. Redis Home http://redis.io/ MSOpenTech/re ...
- SqlSever基础 len函数 计算前后都有空格的字符串的长度时
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- iOS深入学习(再谈block)
之前写过一篇博客,把Block跟delegate类比,说明了使用block,可以通过更少的代码实现代理的功能.那篇博客将block定义为类的property. 过了这么长时间,对于block的内容有了 ...
- 从Unity学UE(一)之蓝图类的使用----制作一个可控灯光
转自:http://blog.csdn.net/u011707076/article/details/44171829 首先申明,本文章内容适合有Unity引擎基础的童鞋享用,如果不了解Unity引擎 ...
- CSS3教程链接
下面列出本站关于CSS3的相关链接,以方便大家阅读: 第一节:<CSS3 Gradient> 第二节:<CSS3 RGBA> 第三节:<CSS3 Border-radiu ...
- Writing On-Error Trigger In Oracle Forms
Suppose you want to handle an error in oracle forms and want to display custom error message for tha ...
- 4,帮助命令man
一:man man是manual的缩写,文档的意思 man man(1),代表man下是分用户级别的,
- CUBRID学习笔记 45 REPLACE DELETE MERGE 教程
c#,net,cubrid,教程,学习,笔记欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . 过错 ------ 官方文档是英文的, ...
- HDU 5724 Chess(国际象棋)
HDU 5724 Chess(国际象棋) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...