タグ

ネットワークとCに関するiwwのブックマーク (5)

  • socket の TIME_WAIT - 元気よく。

    socket 通信をしてて、クライアントから一度接続を切って、その後すぐ再接続したらエラーになりました。。。 環境はこんな感じ。 サーバー: 192.168.1.1:52201 を listen クライアント:192.168.1.2:52202 から connect エラー内容は下記。 接続失敗 WSAEADDRINUSE (10048) Address already in use アドレスは既に使用中である。 ・ bind()しようとしたアドレスは、既にほかのソケットで使われている。 同じローカルアドレスを複数のソケットで使うためには、 SO_REUSEADDRソケットオプションをTRUEにする必要がある。 netstat してみたら、たしかにクライアント側に TCP セッションが TIME_WAIT 状態で残ってました。 netstat -na アクティブな接続 プロトコル ローカル

    socket の TIME_WAIT - 元気よく。
    iww
    iww 2014/09/30
    クライアント側なのにTIME_WAITが残ってしまう理由 → クライアントなのにbind()してたから
  • Man page of NETDEVICE

    Section: Linux Programmer's Manual (7) Updated: 2020-08-13 Index JM Home Page roff page 名前 netdevice - Linux ネットワークデバイスへの低レベルアクセス 書式 #include <sys/ioctl.h> #include <net/if.h> 説明 この man ページでは、ネットワークデバイスを設定するために 用いるソケットインターフェースについて解説する。 Linux はネットワークデバイスを設定するための標準的な ioctl を いくつか備えている。これらはどんなソケットのファイルディスクリプターにも 用いることができる。ファミリーやタイプは何でもよい。 これらの ioctl のほとんどは ifreq 構造体を渡す。 struct ifreq { char ifr_name[I

  • LinuxとMac OS XでMACアドレスと取得する方法 - FIELD NOTES: 書を持って街へ出よう

    実行マシンのMACアドレスを取得する必要があってやり方を探したのですが,意外と探すのに時間がかかりました。結果をここにまとめておきます。 やりたいこと 実行マシンが持つネットワークカードの名称とMACアドレスを列挙したい。 LinuxMac OS Xの両方で動かしたい。 ifconfigなど外部コマンドを呼び出さずにAPIで実現したい。 Linux版 ioctl(_, SIOCGIFCONF, _)でネットワーク・インターフェース情報の一覧を取得してから,個々のインターフェースに対して,ioctl (_, SIOCGIFHWADDR, _)でMACアドレスを取得します。 #include <stdio.h> #include <string.h> #include <sys/ioctl.h> #include <sys/socket.h> #include <netinet/in.h>

    LinuxとMac OS XでMACアドレスと取得する方法 - FIELD NOTES: 書を持って街へ出よう
  • インターフェースのMACアドレスを取得する:Geekなぺーじ

    ネットワークプログラミングを行っていると、自分のネットワークインターフェース(NIC)に設定されているMACアドレスを知りたくなる事があると思います。 ここでは、Linuxでインターフェースに設定されているマックアドレスを取得する方法を説明したいと思います。 単純なMACアドレス取得プログラム Linuxでの簡単なMACアドレス取得プログラムのサンプルを以下に示します。 #include <stdio.h> #include <string.h> /* for strncpy */ #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <net/if.h> int main() { int fd; struct ifreq ifr; fd

  • epollのなかみ - moriyoshiの日記

    よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e

    epollのなかみ - moriyoshiの日記
  • 1