標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

Go で Cygterm っぽいことをやりたいので、ソケットサーバーを書いている(勉強中)

続きの記事 あり)

serv.go :

package main

import (
    "fmt"
    "net"
    "os"
    "strings"
)

func handler(conn net.Conn) {
    defer conn.Close()

    var buffer [255]byte

    for {
        n, err := conn.Read(buffer[:])
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
            return
        }
        text := string(buffer[:n])
        text = strings.Replace(text,"\r","\n",-1)
        conn.Write(buffer[:n])
        fmt.Printf("[%s]\n",text )
    }
}

func main1() error {
    ln, err := net.Listen("tcp", ":8080")
    if err != nil {
        return err
    }
    for {
        conn, err := ln.Accept()
        if err != nil {
            return err
        }
        go handler(conn)
    }
}

func main() {
    if err := main1(); err != nil {
        fmt.Fprintln(os.Stderr, err)
        os.Exit(1)
    }
}

go run serv.go すると、teratermtelnetlocalhost:8080 に接続できる。が、TeraTerm 側でEnter を入力しないと通信が届かない。これ、Enter なしで送受信するにはどうすればいいんだろう