首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
V2EX  ›  Go

运行在 Windows 下的 Go 写的文件服务器只有两并发?

  •  
  •   line · 174 天前 · 1657 次点击
    这是一个创建于 174 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面这段代码编译出来程序,运行在 Windows 下最多只有两并发(用 IDM 之类的工具下载文件,最多只能两线程,第三个会 hang 住)。 同样的代码运行在 Linux 下就没有这个问题。

    package main
    
    import (
            "flag"
            "log"
            "net/http"
    )
    
    func main() {
            port := flag.String("p", "8022", "port to serve on")
            directory := flag.String("d", ".", "the directory of static file to host")
            flag.Parse()
    
            http.Handle("/", http.FileServer( http.Dir(*directory)))
    
            log.Printf("Serving %s on HTTP port: %s\n", *directory, *port)
            log.Fatal( http.ListenAndServe(":"+*port, nil))
    }
    
    2 回复  |  直到 2019-04-26 22:31:17 +08:00
        1
    Mohanson   174 天前 via Android   ♥ 1
    试过直接用 curl 吗?我觉得有点不可思议… go 的 http 服务和客户端默认只保留 2 个长连接,但原则上是会自动扩容的
        2
    line   174 天前
    @Mohanson 我用 wget 手工模拟也是
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   936 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 21:47 · PVG 05:47 · LAX 14:47 · JFK 17:47
    ♥ Do have faith in what you're doing.