golang同时监听TCP、HTTP端口提供服务

项目入口 main.go 中,之前是监听 TCP 连接,代码大致如下:

package main

import (
    "fmt"
    "net"
    "net/http"
)

func main() {
    http.HandleFunc("/hi", Router)

    go http.ListenAndServe("127.0.0.1:8080", nil)

    server, err := net.Listen("tcp", "127.0.0.1:9090")
    if err != nil {
        panic(err)
    }
    defer server.Close()

    for {
        conn, err := server.Accept()
        if err != nil {
            continue
        }
        go handleConn(conn)
    }
}

func Router(resp http.ResponseWriter, request *http.Request) {
    resp.Write([]byte("hello world"))
}

func handleConn(conn net.Conn) {
    fmt.Println(conn.RemoteAddr().String())
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • TCP/IP层发送数据的应用场景 大多数情况下,使用更高级别的网络协议毫无疑问会更好,因为可以使用华丽的API, ...
    Jancd阅读 2,537评论 0 3
  • 二月七日,今天去大良拜年,回家的时候我发现在金海岸那边那条路修好了,发现时间过得好快,而且那些工人的效率也好高我记...
    梁乐晖201701阅读 139评论 0 0
  • 他的情人医术高明,却不识人心。他用五年骗得他的心,卷款逃走,不料半途遭遇车祸成了植物人,模糊中听见熟悉的声音为他读...
    洞庭府君阅读 629评论 0 4
  • 蔡崇达丨莫让这皮囊的重量拖住了你的灵魂…… 对着屏幕,发了半天的呆,却是半个字也写不出来。其实,自己要求自己每天写...
    书影流光阅读 893评论 8 14