package main

import (
    "net"
    "os"
)

const (
    RECV_BUF_LEN = 1024 // 接收的緩存大小
)

func main() {
    println("啟動伺服器...")

    listener, err := net.Listen("tcp", ":1024") // 1024 = Server Port
    if err != nil {
        println("監聽錯誤:", err.Error())
        println("關閉伺服器。")
        os.Exit(1)
    }

    for {
    conn, err := listener.Accept() // 持續監聽客戶端連線
    if err != nil {
        println("連線錯誤:", err.Error())
        continue
    }
        go ClientLogic(conn)
    }
}

func ClientLogic(conn net.Conn) {

    //接收 客戶端資料
    buf := make([]byte, RECV_BUF_LEN)
    n, err := conn.Read(buf)
    if err != nil {
        println("接收錯誤:", err.Error())
        return
    }
    println("接收 ", n, " 個 byte 資料:", string(buf))

    //發送 資料至客戶端
    _, err = conn.Write( [] byte("安安你好\n") )
    if err != nil {
        println("發送失敗:", err.Error())
    } else {
        println("發送成功")
    }

    conn.Close()
}



















    全站熱搜

    黃彥霖 發表在 痞客邦 留言(0) 人氣()