以Go编程语言提供的基于 Socket 服务器与客户通信样本

      最后更新:2021-11-10 03:58:59 手机定位技术交流文章

      在戈兰,网络协议被非常严密地封存了; 我们不需要一系列操作的杂摊, 比如沙克特,捆绑,听,听,接收,像任何其他语言一样, 来开发一个Socket服务器, 所以通过使用你在戈兰的网包连接起来很简单。
      在此提供基于 Socket 的最基本服务器版本 :

      复制代码代码如下:

      package main
      import (
      "fmt"
      "net"
      "log"
      "os"
      )


      func main() {

      创建套接字和在端口监听
      netListen, err := net.Listen("tcp", "localhost:1024")
      CheckError(err)
      defer netListen.Close()

      Log("Waiting for clients")
      for {
      conn, err := netListen.Accept()
      if err != nil {
      continue
      }

      Log(conn.RemoteAddr().String(), " tcp connect success")
      handleConnection(conn)
      }
      }
      //处理连接
      func handleConnection(conn net.Conn) {

      buffer := make([]byte, 2048)

      for {

      n, err := conn.Read(buffer)

      if err != nil {
      Log(conn.RemoteAddr().String(), " connection error: ", err)
      return
      }


      Log(conn.RemoteAddr().String(), "receive data string:n", string(buffer[:n]))

      }

      }
      func Log(v ...interface{}) {
      log.Println(v...)
      }

      func CheckError(err error) {
      if err != nil {
      fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
      os.Exit(1)
      }
      }

      为了消除五行错误鸡蛋不适的十行Go代码, 您可以观察到服务器想要建构和接受Socket, 其基本程序如下:

      复制代码代码如下:

      netListen, err := net.Listen("tcp", "localhost:1024")

      conn, err := netListen.Accept()

      n, err := conn.Read(buffer)

      这些是Go语言中使用 Socket 构建服务器与客户互动的示例。 请更密切地关注 html 中文网页上的其他相关项目!

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13006.html

          热门文章

          文章分类