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服务器的更多相关文章

  1. 超简易静态Web服务器

    使用 HttpListener 写的一个超简易静态Web服务器 开发环境:VS2010 + .NET2.0 http://files.cnblogs.com/zjfree/EasyIIS.rar

  2. 第十八篇:简易版web服务器开发

    在上篇有实现了一个静态的web服务器,可以接收web浏览器的请求,随后对请求消息进行解析,获取客户想要文件的文件名,随后根据文件名返回响应消息:那么这篇我们对该web服务器进行改善,通过多任务.非阻塞 ...

  3. Tinywebserver:一个简易的web服务器

    这是学习网络编程后写的一个练手的小程序,可以帮助复习I/O模型,epoll使用,线程池,HTTP协议等内容. 程序代码是基于<Linux高性能服务器编程>一书编写的. 首先回顾程序中的核心 ...

  4. 【ASP.NET】编写自己的Web服务器

    自己写一个简单的Web服务器,对加深理解Http协议有很好的帮助,下面就看一下一个基于TcpListener的Web服务器: class Program { static void Main(stri ...

  5. 基于C语言的Socket网络编程搭建简易的Web服务器(socket实现的内部原理)

    首先编写我们服务器上需要的c文件WebServer.c 涉及到的函数API: int copy(FILE *read_f, FILE * write_f) ----- 文件内容复制的方法 int Do ...

  6. Centos7源码安装httpd2.4版本web服务器

    我们的系统平台是在centos7.5的环境下安装httpd2.4版本的软件,2.4版本的软件有一个特征就是需要安装arp包以及arp-util包才可以. 1.首先是下载httpd2.4版本的包,以及安 ...

  7. go编写简单的web服务器

    package main import ( "fmt" "log" "net/http" "strings" ) //h ...

  8. micropython TPYBoard v201 简易的web服务器的实现过程

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 TPYBoard v201开发板上搭载了以太网 ...

  9. 基于Docker和Golang搭建Web服务器

    1 场景描述 基于centos7的docker镜像搭建golang开发环境 在docker容器内,使用golang实现一个Web服务器 启动docker容器,并在容器内启动Web服务器 我购买了一个最 ...

随机推荐

  1. CodeForces 478C Table Decorations

    Table Decorations Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u ...

  2. 从原理上搞定编码-- Base64编码

    BASE64是一种编码方式,通常用于把二进制数据编码为可写的字符形式的数据.这是一种可逆的编码方式.编码后的数据是一个字符串,其中包含的字符为:A-Z.a-z.0-9.+./共64个字符:26 + 2 ...

  3. awk 以HWI开头,并且:相邻两行的第一个字段完全相同;

    ## 思路:以HWI开头,并且:相邻两行的第一个字段完全相同:awk 'BEGIN{ last_col_1="xxxxxx"; last_row="bbbbbbbbbbb ...

  4. Plotting means and error bars (ggplot2)

    library(ggplot2) ############################################# # summarySE ######################### ...

  5. [转]ZigBee On Windows Mobile--ZigBee模块天线设计

    原文出处:http://www.cnblogs.com/dearsj001/archive/2008/10/26/1320029.html

  6. Linux 下常用解压命令(转载)

    Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress fi ...

  7. ubuntu1604安装体验

    昨天安装了ubuntu 16 安装成了双系统,这样的速度才能接受. 各种软件支持的都还算不错.除了启动时候原始的气息,启动之后挺稳定的. 最让人开心的是新的unity的设置更加丰富了,可以自动隐藏,更 ...

  8. Yii javascript 的结合 账号禁用 激活 的设置。

    2014-02-16 控制器中的代码: public function actionUpdown(){ //print_r($_POST);die(); if(Buser::model()->u ...

  9. Oracle中synonym和index

    笔记: Oracle-同义词--通过用户名(模式名).表名       --授权:grant create synonym to test1(system用户下授权))     --私有  creat ...

  10. php使用cURL实现Get和Post请求的方法

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...