debian

Debian下Golang网络编程怎么做

小樊
45
2025-08-08 01:26:20
栏目: 编程语言

Debian下Golang网络编程步骤

  1. 安装Golang
    通过APT安装:

    sudo apt update && sudo apt install golang-go
    

    验证安装:go version

  2. 设置环境变量(可选)
    编辑~/.bashrc,添加:

    export GOPATH=$HOME/go
    export PATH=$PATH:$GOPATH/bin
    

    生效配置:source ~/.bashrc

  3. 编写网络程序

    • TCP服务器示例
      监听端口并处理连接(支持并发):
      package main
      import (
          "bufio"
          "fmt"
          "net"
      )
      func handleConnection(conn net.Conn) {
          defer conn.Close()
          reader := bufio.NewReader(conn)
          for {
              message, err := reader.ReadString('\n')
              if err != nil {
                  fmt.Println("读取错误:", err)
                  return
              }
              fmt.Println("收到消息:", message)
              conn.Write([]byte("服务器回复: " + message))
          }
      }
      func main() {
          listener, err := net.Listen("tcp", ":8080")
          if err != nil {
              panic(err)
          }
          defer listener.Close()
          fmt.Println("服务器监听8080端口...")
          for {
              conn, err := listener.Accept()
              if err != nil {
                  fmt.Println("接受连接错误:", err)
                  continue
              }
              go handleConnection(conn) // 并发处理
          }
      }
      
    • TCP客户端示例
      连接服务器并发送数据:
      package main
      import (
          "bufio"
          "fmt"
          "net"
          "os"
      )
      func main() {
          conn, err := net.Dial("tcp", "localhost:8080")
          if err != nil {
              panic(err)
          }
          defer conn.Close()
          scanner := bufio.NewScanner(os.Stdin)
          for {
              fmt.Print("输入消息: ")
              if !scanner.Scan() {
                  break
              }
              text := scanner.Text()
              conn.Write([]byte(text + "\n"))
              reply, _ := bufio.NewReader(conn).ReadString('\n')
              fmt.Println("服务器回复:", reply)
          }
      }
      ```。
      
      
  4. 运行与测试

    • 启动服务器:go run server.go
    • 客户端测试:
      • 使用telnettelnet localhost 8080
      • 或运行客户端程序直接交互。
  5. 进阶方向

    • HTTP编程:使用net/http包构建Web服务,支持HTTP/2。
    • UDP编程:通过net.ListenUDP实现无连接通信。
    • 并发优化:利用goroutine和channel处理高并发连接,注意控制goroutine数量。
    • 安全增强:使用TLS/SSL加密通信,或集成第三方框架(如Gin、Echo)。

关键注意事项

参考资料:[1,2,3,7,8,10,12,13,14]

0
看了该问题的人还看了