github.com/DARA-Project/GoDist-Scheduler@v0.0.0-20201030134746-668de4acea0d/examples/ServerClient/server/server.go (about)

     1  package main
     2  
     3  import "net"
     4  import "log"
     5  import "bufio"
     6  import "fmt"
     7  
     8  func main() {
     9  
    10    fmt.Println("[SampleServer]Launching server...")
    11  
    12    // listen on all interfaces
    13    ln, err := net.Listen("tcp", ":18081")
    14    if err != nil {
    15      log.Fatal(err)
    16    }
    17    defer ln.Close()
    18    fmt.Println("[SampleServer]Listening now...")
    19    // accept connection on port
    20    conn, err := ln.Accept()
    21    if err != nil {
    22      log.Fatal(err)
    23    }
    24    fmt.Println("[SampleServer]Accepted connection")
    25    // will listen for message to process ending in newline (\n)
    26    message, err := bufio.NewReader(conn).ReadString('\n')
    27    if err != nil {
    28      log.Fatal(err)
    29    }
    30    fmt.Println("[SampleServer]Received Message from client")
    31    // output message received
    32    // sample process for string received
    33    // send new string back to client
    34    _, err = conn.Write([]byte(message + "\n"))
    35    if err != nil {
    36      log.Fatal(err)
    37    }
    38    fmt.Println("[SampleServer]Wrote reply to client", message)
    39  }