2021-01-20に更新

GolangでTelnetを使ってみようぜ☆(^~^)?

ごきゅー☆(^~^) べちょば☆(^~^) ぽぷ☆(^~^) 公開下書き

2021-01-20 wed 19:00

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 SSHより前の 平文を投げ合う Telnet のプログラミングをやろうぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 今さら……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ディープ・ラーニングからどんどん遠ざかっていくわね。昔の人が通り過ぎたところじゃない」

Go言語でtelnet通信 (reiver/go-telnetを使ってみた)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 頼りになるのは この記事ぐらい……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 まず、エコー・サーバーを作ってみてはどうか☆?」

20210120telnet1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Windows Defender が見張ってた……☆ プライベート ネットワークに チェックしたまま [アクセスを許可する] で☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 何かが接続してくるのを待ってるわよ?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 クライアント側も作るんで……☆」

20210120telnet2a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ サンプル・プログラムが そのまんま エコー・サーバーだった……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 よっしゃ 完☆」

対局サーバー作れんの?

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 こっから 対局サーバー作るの 気が遠くなるな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 まず じゃんけんサーバー を作ったらいいんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ロビー作ったり、マッチング作ったり、頭が おかしくなる……☆」

        n, err := r.Read(p)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Telnet の Read、 行末の \n が付いてないから
どこでコマンドが終わったのか分からないし、
送ってこない文字列を ずっと待ち続けるぜ☆ タイムアウトもない☆ 昔の人 どうやってプログラム組んだんだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 ググろうぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Python には ReadLine があるんじゃないか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Go言語には ReadLine 無い☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 改行がこないし、タイムアウトもないし、1行受け取ったら何かしよ、ということができないんだが どんな文化が過去に有ったんだぜ☆?
クライアントはサーバーが送ってくる文字列を全て知ってて固定長で待ち構えているのかだぜ☆? 想像がつかん☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 Go言語の Telnet ライブラリは 個人製だから そんな不具合取り切れてないんじゃないの?」

https://pkg.go.dev/github.com/reiver/go-telnet

https://pkg.go.dev/github.com/julisch94/telnet

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ なんか2つある☆」

20210120telnet3a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ この Telnet ライブラリもダメか……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 もっとマシな Telnet ライブラリは無いのかだぜ☆?」

https://pkg.go.dev/github.com/ziutek/telnet

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 当たりを引くまでのガチャかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 このライブラリも ReadLine('\n') は 働かなかったぜ☆」

何度でもクリック!→

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ の最近の記事