为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在指定本地端口时客户端会挂起?

为什么在指定本地端口时客户端会挂起?

Go
扬帆大鱼 2021-09-13 10:42:44
这与必须用 Java 提交的家庭作业有关。该程序按预期工作,将 server.go 的内容打印到终端。为什么客户端在两次或多次连续运行后挂起 30 秒?延迟仅在指定客户端端口时发生(与分配相关)。// server.gopackage mainimport (    "log"    "net/http")func main() {    log.Fatal(http.ListenAndServe(":8080", http.FileServer(http.Dir("."))))}如果不是 defer conn.Close() 并且客户端仅在前一个客户端返回后运行,我希望延迟是等待连接关闭的超时。// client.gopackage mainimport (    "fmt"    "io"    "log"    "net"    "os")func main() {    d := net.Dialer{        LocalAddr: &net.TCPAddr{            Port: 8081,        },    }    // Dial the server from client port 8081 to server port 8080    conn, err := d.Dial("tcp", ":8080")    if err != nil {        log.Fatal(err)    }    defer conn.Close()    // Request the resource and log the response    fmt.Fprint(conn, "GET /server.go HTTP/1.0\r\n\r\n")    io.Copy(os.Stdout, conn)}延迟期间 netstat 的输出:$ netstat -anp tcp | grep "8080\|8081"tcp4       0      0  127.0.0.1.8081         127.0.0.1.8080         SYN_SENT   tcp46      0      0  *.8080                 *.*                    LISTEN   
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信