qiita.com/megadreams14/items/32a3eed4661e55419e1c
分析結果
- カテゴリ
- IT
- 重要度
- 45
- トレンドスコア
- 9
- 要約
- 知ったかぶりをしていたソケット通信の基礎を改めて学んでみる #TCP - Qiita 788 いいねしたユーザー一覧へ移動 703 X(Twitter)でシェアする Facebookでシェアする はてなブックマークに追加する more_horiz 記事を削除する close 一度削除した記事は復旧できません。 この記事の編集中の下書きも削除されます。 削除してよろしいですか? キャンセル 削除する delete info この記事は最終
- キーワード
知ったかぶりをしていたソケット通信の基礎を改めて学んでみる #TCP - Qiita 788 いいねしたユーザー一覧へ移動 703 X(Twitter)でシェアする Facebookでシェアする はてなブックマークに追加する more_horiz 記事を削除する close 一度削除した記事は復旧できません。 この記事の編集中の下書きも削除されます。 削除してよろしいですか? キャンセル 削除する delete info この記事は最終更新日から5年以上が経過しています。 22日目 BRIGHT VIE Advent Calendar 2017 @ megadreams14 in 株式会社ブライト・ヴィー 知ったかぶりをしていたソケット通信の基礎を改めて学んでみる TCP ソケット通信 788 最終更新日 2019年07月11日 投稿日 2017年12月22日 この記事は、 BRIGHT VIE Advent Calendar 2017 - Qiita の 22日目の記事になります。 はじめに 最近社内でもソケット通信でのやりとりを行う案件が多くなってきており、なんとなくの理解でこれまで来てしまっていたので、改めてソケット通信を理解するために調査がてら簡単にまとめてみようと思います。 ソケット通信とは ソケット インターネットはTCP/IPと呼ぶ通信プロトコルを利用しますが、そのTCP/IPをプログラムから利用するには、プログラムの世界とTCP/IPの世界を結ぶ特別な出入り口が必要となります。 その出入り口となるのがソケット(Socket)であり、TCP/IPのプログラミング上の大きな特徴となっています。 引用元: http://research.nii.ac.jp/~ichiro/syspro98/socket.html とのことで、普段利用しているHTTP通信もソケット通信を行っているのですね。 OSI参照モデル OSI(Open System Interconnection)参照モデルとは、ISOで定められている、異なるベンダー間で相互に通信を行うためのネットワークモデルと言われる統一規格のことです。 高校生の頃、初級シスアドを取得するために必死で学んだ方も中にはいらっしゃるのではないでしょうか。 ここでソケット通信は、TCP/IPを利用する通信全般のことであるため、トランスポート層を指します。そして、そのソケットを利用してアプリケーション層のHTTP通信などが行われているというイメージですね。 簡単にまとめると、 ・TCPは、「データの内容はおいといて、通信デバイス間での通信内容を確実に送受信するためのルール」を定めているプロトコル ・HTTPは、「TCPにさらにルールを追加して、送受信されるデータの形式や送受信タイミングをWebサイト閲覧に最適化する形に定められたルール」 と考えると分かりやすいかもしれませんね 【TCP/IP】勉強がてらHTTPクライアントもどきをPythonで作ってみる ソケット通信とHTTP通信 OSI参照モデルまとめ ソケットを使うと何が出来るの? 上記OSI参照モデルからもわかるように、HTTPよりも下のレイヤを扱うことが出来きます。 また、ソケットを使うとTCP/UDP上で動く(トランスポート層レベル)アプリケーションを開発することが出来るため、HTTPよりもよりコンパクトな通信を使ってデータを送信したいといったことも可能となります。 PHPで学ぶソケットプログラミング入門 ソケット通信のライフサイクル ソケット通信を行う上で知っておきたいライフサイクルについて箇条書きベースで記載してみます。 下記のような処理を実際のプログラムに組み込むような形となります。 サーバ側のライフサイクル create ソケットの作成 bind ソケットを特定のIPアドレスとポートに紐付け listen 接続の待受を開始 accept 接続を受信 close 接続を切断 クライアント側のライフサイクル create ソケットの作成 bind ソケットを特定のIPアドレスとポートに紐付け connect リモートソケットに接続 close 接続を切断 まとめ 簡単にですが概要をまとめてみましたが、簡易的な通信をするくらいだったら調べればすぐに出来そうなレベルであるが、実際にサービスとして運用させるのであれば、ディスクリプタの枯渇やpingは通るのにconnect出来ないといったトラブル対応が曖昧な知識ではなかなか厳しそうだなという印象でした。 そのあたりも意識した実装が必要になるため、しっかり勉強した上で取り組んでいきたいところですね。 以下調査している時面白かった記事のリンクになります。 調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話 何でもかんでもSocketを使うな まつもと直伝 プログラミングのオキテ 第16回 ネットワーク・プログラミング(ソケット編) 788 いいねしたユーザー一覧へ移動 703 comment 8 コメント一覧へ移動 新規登録して、もっと便利にQiitaを使ってみよう あなたにマッチした記事をお届けします 便利な情報をあとで効率的に読み返せます ダークテーマを利用できます ログインすると使える機能について 新規登録 ログイン 788 いいねしたユーザー一覧へ移動 703 more_horiz 記事を削除する close 一度削除した記事は復旧できません。 この記事の編集中の下書きも削除されます。 削除してよろしいですか? キャンセル 削除する delete