成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google Go語言實現http共享(帶trace)

開發 開發工具
我們今天要講到用Go語言實現http文件共享,這個版本的程序比python的實現快了點,默認情況下支持的客戶端多了些。

 我之前有篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/03/13/httpShareGolang20120312.html)中提到過用Go語言實現http文件共享,這個版本的程序比python的實現快了點,默認情況下支持的客戶端多了些,但是沒有客戶訪問的trace,程序運行過程中,感覺像是死掉了。我想改進下,讓它有trace。

代碼如下:

  1. /* 
  2. File      : httpShareWithTrace.go 
  3. Author    : Mike 
  4. E-Mail    : Mike_Zhang@live.com 
  5. */ 
  6. package main 
  7. import( 
  8.     "fmt" 
  9.     "net/http" 
  10.     "io/ioutil" 
  11.     "log" 
  12.     "time" 
  13.     "os" 
  14.     "strings" 
  15.  
  16. func getFilelist(path string) string { 
  17.         m_files,err  :=  ioutil.ReadDir(path) 
  18.         if err !=nil{ 
  19.         //     println( "Get filelist error !" ) 
  20.                 return "" 
  21.         } 
  22.         var strRet string 
  23.         for _,f :range m_files  { 
  24.                 //    println(f.Name(),f.IsDir()) 
  25.                 if path == "./" { 
  26.                         strRet += "<p><a href=\""+path+""+f.Name() +" \">" + f.Name() + "</a></p>
  27.                 }else{ 
  28.                         strRet += "<p><a href=\""+path[1:]+"/"+f.Name() +" \">" + f.Name() + "</a></p>
  29.                 } 
  30.         } 
  31.         return strRet 
  32.  
  33. func Handler( w http.ResponseWriter,r *http.Request ){ 
  34.         println("Request ",r.URL.Path," from ",r.RemoteAddr) 
  35.         //   path :r.URL.Path[1:] 
  36.         path :"." + r.URL.Path 
  37.         if path == "./favicon.ico" {http.NotFound(w,r);return} 
  38.         if path == "./" ||  getFilelist(path) != "" {fmt.Fprintf( w,"%s",getFilelist(path));return} 
  39.         fin,err :os.Open(path) 
  40.         defer fin.Close() 
  41.         if err != nil {fmt.Fprintf( w,"404 : Not found" );return} 
  42.         readLen :1024 * 1024 
  43.         buf :make([]byte,readLen) 
  44.         startPos :0 
  45.         println("Transfer file ",path," ... ") 
  46.         for { 
  47.                 n,err :fin.ReadAt(buf,int64(startPos)) 
  48.                 fmt.Fprintf(w,"%s",buf[:n]) 
  49.                 if 0 == n || err != nil {break} 
  50.                 startPos += readLen 
  51.         } 
  52. func main(){ 
  53.         port :"8080"  //Default port  
  54.         if len(os.Args)>1 { port = strings.Join(os.Args[1:2],"")} 
  55.         http.HandleFunc( "/",Handler) 
  56.         s := &http.Server{ 
  57.                 Addr:           ":"+port, 
  58.                 ReadTimeout:    1 * time.Hour,  
  59.                 WriteTimeout:   1 * time.Hour, 
  60.                 MaxHeaderBytes: (1 << 31) - 1 , //Max file size is 2048M 
  61.         } 
  62.         println("Listening on port ",port,"...") 
  63.         log.Fatal(s.ListenAndServe()) 

運行效果如下:

1、啟動http文件共享

2、web訪問

3、后臺trace

說明:最大支持2G文件的下載,限時為1個小時,這里沒有用充分使用http協議,直接用文件io做的。時間有限,這里暫時達到了預期功能,夠局域網使用,這個等以后有時間了做進一步的優化。

原文鏈接:http://www.cnblogs.com/MikeZhang/archive/2012/08/06/httpShareGolang20120805.html

【編輯推薦】

  1. Google Go語言發布兩周年 不斷改進中
  2. Google Go:新興語言的代表
  3. 1月編程榜發布:Google Go意外奪得年度編程語言
  4. Google Go有啥用?以及何謂好的系統編程語言
  5. Google Go語言的快樂編程因素

責任編輯:彭凡 來源: 博客園
相關推薦

2012-03-13 10:40:58

Google Go

2022-11-01 18:29:25

Go語言排序算法

2020-08-12 08:56:30

代碼凱撒密碼函數

2023-05-08 07:55:05

快速排序Go 語言

2024-08-29 13:23:04

WindowsGo語言

2022-05-19 14:14:26

go語言限流算法

2021-07-12 15:50:55

Go 語言netstat命令

2024-06-06 09:47:56

2023-07-31 08:01:13

二叉搜索測試

2021-07-26 09:47:38

Go語言C++

2012-11-08 09:36:10

Google Go

2023-03-27 00:20:48

2022-04-18 10:01:07

Go 語言漢諾塔游戲

2015-12-21 14:56:12

Go語言Http網絡協議

2022-07-20 09:52:44

Go語言短信驗證碼

2014-12-26 09:52:08

Go

2024-08-26 14:32:43

2021-03-01 21:59:25

編程語言GoCX

2021-03-01 18:35:18

Go語言虛擬機

2011-01-05 10:58:05

Google Go
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99久久久久久久久久久久 | 天堂在线www | 欧美精品一区二区三区四区五区 | 一区二区视频在线 | 精品久久成人 | 久久性色 | 久久久精品 | 国产精品久久久久久福利一牛影视 | 国产一区在线免费观看视频 | 亚洲日本欧美 | 亚洲午夜av久久乱码 | 免费a网站 | 日日操视频 | 国产精久久久 | 亚洲精品性视频 | 亚洲成人av| 日韩欧美在线视频 | 91精品国产91久久久久久 | 国产精品美女久久久 | se婷婷| 国产精久久久久久久 | 欧美黑人一区二区三区 | 国产精品国产精品国产专区不卡 | 久久91 | 欧美一级欧美一级在线播放 | 成人动漫视频网站 | 国产精品99久久久久久久久久久久 | 91精品91久久久 | 国产激情在线播放 | 久久国产麻豆 | 精品一区二区三区在线观看 | 国产精品久久久久久久久久久久 | 男人的天堂视频网站 | 国产精品精品视频一区二区三区 | 成人精品啪啪欧美成 | 亚洲性视频网站 | 97国产精品视频人人做人人爱 | 久久精品国产一区二区三区不卡 | 国产永久免费 | 国内自拍第一页 | 亚洲男人天堂av |