link貧弱マンですこんばんわ。プログラマーになって以降、一度もまともにネットワークの勉強をしたことがなかったのですが、仕事で扱っている製品がソッチ系なのもあって「甘えんな」という周囲の圧力が高まってきました。参考書読むだけだと5秒で飽きるのは確定的に明らかなので、色々実装しながら雰囲気をつかもうと思いました。今回はとりあえず、ネットワークプログラミング界のハローワールド的存在っぽいエコーサーバを実装してみることにしました。C言語はめんどくさそうなのと、最近Go言語がなんか流行ってるっぽいのでそれに乗っかってGoで書いてみました。参考に、Vimの補完とかの設定を済ませておくと幸せになれると思います。ネットワークプログラミング初体験なので、とりあえずエコーサーバの実装例とかをググりまくります。Cでの実装例が多いですが、とりあえず実装に必要な用件はTCPを使うポートを指定して待ち受けるリクエストを受け付けたら、受け取った文字列をそのまま送り返すというような雰囲気っぽいです。ついでに、telnetとか使うのは切ないのでクライアントも実装します。こっちも同じような感じに、送信して返答を受け取れば良い気がしました。いうわけで、後はGoのドキュメントをみてそれっぽい関数を見つけ出して組み合わせるだけです。あと、GoはGoroutineとかいうので、go文を使えば簡単に非同期が書けるときいて楽しそうだったので使ってみます。こんな感じになりました。関数が基本的に複数の値を返す形になっていて、エラー処理をいい感じに強制してくれるところとかがすごい堅実なアトモスフィアでいいと思いました。server.goとすれば、スクリプトめいた感じでサーバ用のコードを実行出来ます。hogehogehogeeeとします。すると、なんということでしょう。両方の端末にヤマビコめいたやりとりが成立しています。なんか余りにも直感的に実装出来すぎて逆に不安なのですが、多分これで正しく実装出来ていると思います。次はDNSのクライアントとか実装しようかと思います。ついでに、今回はGo言語での初プログラミングだったわけですが、言語仕様とか、go本体を含めた周辺のツールとか(これは言語仕様と同じかそれ以上に大事だと思っている)も洗練されている感じでおもったよりも全然取っ付きやすかったです。いったコードはGoで書こうかなと思いました。当記事はJWTそのものではなく使い方に関する概要です。We...2015-10-15Go言語でAjaxのPOSTリクエストを受け取る際は注意したほうがいいおはなしGo言語のnet/httpのRequestはFormValue以外の方法でPOSTされた...2015-02-23ReactとFluxの入門のためにArdaを使ってみたFluxもReactもよくわからん状態で入門して今日一日泣きそうにな...2014-10-21JavaScriptの便利メソッドとかの状況についてのメモ最近よくJSかいてる。色々な便利機能についてネットネット記事...2014-10-18考えを組み立てるアプローチって大きく2タイプに分けられる気がする文系と理系。(id:hachibeechan)プログラミングのこととか、プログラミング以外のこととかについて書きなぐります。ここに書かれている内容は個人の日記レベルの内容であり、所属する組織の公式見解ではありません。何か御用の方はメールやツイッターのDMとかそういう感じでお願いします。blogに移行していきます。(1)おすすめ技術書オールタイムベストスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。