第15章 15.1-tcp服务器

1、 实现一个简单的tcp服务器

1.1 server

package main

import "fmt"
import "net"

func main() {
    fmt.Println("开始启动服务器")
    listener, err1 := net.Listen("tcp", ":8089")
    if err1 != nil {
        fmt.Println("Error accepting", err1.Error())
        return
    }
    // 处理客户端来的请求
    for {
        conn, err2 := listener.Accept()
        if err2 != nil {
            fmt.Println("Error accepting", err2.Error())
            return
        }
        go doServerBuf(conn)
    }
}

func doServerBuf(conn net.Conn) {
    for {
        buf := make([]byte,1024)
        len, err3 := conn.Read(buf)
        if err3 != nil {
            fmt.Println("Error reading", err3.Error())
            return
        }
        fmt.Printf("Received data: %v", string(buf[:len]))
    }
}

1.2 client

package main

import (
    "bufio"
    "fmt"
    "net"
    "os"
)

func main() {
    conn, err1 := net.Dial("tcp", ":8089")
    if err1 != nil {
        fmt.Println("Error dialing", err1.Error())
        return
    }
    inputReader := bufio.NewReader(os.Stdin)
    for {
        fmt.Println("What to send to the server? Type Q to quit.")
        input, _ := inputReader.ReadString('\n')
        conn.Write([]byte(input))
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容