Help us understand the problem. What is going on with this article?

自分用メモ linuxネットワーキングプログラミング

前書き

基本ネットや書籍から拾ってきた内容を雑にメモしているだけ
文面以上に内容をもっと深堀りたかったら、リンク貼るのでそこを見てください
ちなみにITインフラ技術の実験室ってサイトが良すぎたので何かあったら基本的にそこに全部載ってる

用語

ファイル

ファイルはインターフェイスです
ファイルインターフェイスが実装されたオブジェクトを操作すると、ローカルの補助記憶装置に対して読み書きできたり、通信相手と送受信できたりします。

  • 補助記憶装置に対して読み書きするファイル[クラス|オブジェクト]は単純にファイルと呼ぶ
  • プロセス間通信やtcp/udp等を利用する際に利用するファイル[クラス|オブジェクト]はソケットファイルと呼ぶ

記述子 (descriptor

識別子は識別する為のもの。
記述子は記述する為のもの。記述するためには識別したり、読み込んだりする必要もある。
なので、記述子は識別子よりも強力。
記述子は基本的に特定の関数やクラス等で引数として与え、その関数やクラスを利用して読み書きができるようになる。
Kernelレベルで実装されているらしい。

記述子には
* socket descriptor
* socket file descriptor
* file descriptor
* field descriptor
等、その他沢山ある。 (発案の数だけある

参考資料:
https://unix.stackexchange.com/questions/233237/etymology-of-descriptor-in-file-descriptor/295746#295746
https://rust-jp.slack.com/archives/C8FLSR5F1/p1571635210176900

Cでソケットを扱う際の各種関数等の仕様

この内容の軽いメモ
https://www.infra.jp/programming/network_programming_3.html#multiplexing

accept

待機待ち行列があれば、そこから1つ取り出す。
なければ、ブロッキングする。

select

引用: https://www.infra.jp/programming/network_programming_3.html#multiplexing

select()はaccept()やrecv()同様、処理をブロックしますが、複数のディスクリプタを同時に見張ることができるため、クライアントからの新規接続や接続中クライアントからの受信など、記述子の変化があった場合にどのような変化かに関わらず処理を先に進められます。
また、各ディスクリプタに変化があるまでブロックするため、CPUパワーを無駄に消費することもありません。

poll

selectより細かく指定できる

EPOLL

数千コネクションでも耐えられる様にチューニングされている。
pollの上位互換だが、linux固有の実装らしい

Cでネットワーキングプログラミングをする

...今時間が無いため後で書く

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした