go 中的 Telnet 客户端
Telnet client in go
我正在尝试从 go 客户端发送 'hello world' 到 telnet 服务器。在 documentation 我找到了例子:
var caller telnet.Caller = telnet.StandardCaller
telnet.DialToAndCall("localhost:5555", caller)
现在发送 'helloworld' 的下一步是什么?
telnet 库实现了 'Writer' 类型。 Writer Type 有一个 Write
方法。
在下面的示例中,您可以看到 CallTELNET 使用 stdin 和 stdout 来允许程序的用户通过 telnet 进行通信。您可以通过 运行 程序发送 "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)
}
}
使用 go-telnet
的编程连接示例
func SetTest() {
conn, _ := telnet.DialTo("localhost:5555")
conn.Write([]byte("hello world"))
conn.Write([]byte("\n"))
}
我正在尝试从 go 客户端发送 'hello world' 到 telnet 服务器。在 documentation 我找到了例子:
var caller telnet.Caller = telnet.StandardCaller
telnet.DialToAndCall("localhost:5555", caller)
现在发送 'helloworld' 的下一步是什么?
telnet 库实现了 'Writer' 类型。 Writer Type 有一个 Write
方法。
在下面的示例中,您可以看到 CallTELNET 使用 stdin 和 stdout 来允许程序的用户通过 telnet 进行通信。您可以通过 运行 程序发送 "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)
}
}
使用 go-telnet
的编程连接示例func SetTest() {
conn, _ := telnet.DialTo("localhost:5555")
conn.Write([]byte("hello world"))
conn.Write([]byte("\n"))
}