go中的Telnet客户端

go中的Telnet客户端,go,telnet,Go,Telnet,我正在尝试从go客户端向telnet服务器发送“hello world”。在我找到的示例中: var caller telnet.Caller = telnet.StandardCaller telnet.DialToAndCall("localhost:5555", caller) 现在发送“helloworld”的下一步是什么 telnet库实现“Writer”类型。具有写入方法。在下面的示例中,您可以看到CallTELNET使用stdin和stdout允许程序用户通过telnet

我正在尝试从go客户端向telnet服务器发送“hello world”。在我找到的示例中:

var caller telnet.Caller = telnet.StandardCaller    
telnet.DialToAndCall("localhost:5555", caller)

现在发送“helloworld”的下一步是什么

telnet库实现“Writer”类型。具有写入方法。

在下面的示例中,您可以看到CallTELNET使用stdin和stdout允许程序用户通过telnet进行通信。您可以通过运行程序并键入希望发送的文本,然后按enter键发送“hello world”

包干管

import (
    "bufio"
    "fmt"
    "log"
    "os"

    "github.com/reiver/go-oi"
    "github.com/reiver/go-telnet"
)

type caller struct{}

func (c caller) CallTELNET(ctx telnet.Context, w telnet.Writer, r telnet.Reader) {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        oi.LongWrite(w, scanner.Bytes())
        oi.LongWrite(w, []byte("\n"))
    }
}

func main() {
    fmt.Printf("Dial to %s:%d\n", "localhost", 8080)
    err := telnet.DialToAndCall(fmt.Sprintf("%s:%d", "localhost", 8080), caller{})

    if err != nil {
        log.Fatal(err)
    }
}

找到的示例和使用

func SetTest() {
    conn, _ := telnet.DialTo("localhost:5555")
    conn.Write([]byte("hello world"))
    conn.Write([]byte("\n"))

}