Changes between Version 47 and Version 48 of Dev


Ignore:
Timestamp:
Dec 16, 2013 5:14:06 PM (11 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Dev

    v47 v48  
    2020 * [http://www.w3.org/TR/2008/WD-jlreq-20081015/ja/ 日本語組版処理の要件(日本語版)] 
    2121 * [http://www.nminoru.jp/~nminoru/programming/ プログラミングに関係すること] 
    22  
    23  * [http://cboard.cprogramming.com/networking-device-communication/93683-checking-if-file-descriptor-valid.html#post678998 Checking if a file descriptor is valid] 
    24  > {{{#!c 
    25  > int is_valid_fd(int fd) 
    26  > { 
    27  >     return fcntl(fd, F_GETFL) != -1 || errno != EBADF; 
    28  > } 
    29  > }}} 
    30  
    31  * [http://www.linuxquestions.org/questions/programming-9/sockets-af_packet-versus-pf_packet-942143/ sockets: AF_PACKET versus PF_PACKET] 
    32  > Yes. AF_foo means address family foo, and PF_foo means protocol family foo. In Linux, they are always been the same values, I believe. 
    33  > Traditionally, the PF_foo constants were used for socket(), but AF_foo in the struct sockaddr structure. 
    34  > 
    35  > Thus, today, there really should be no difference between AF_foo and PF_foo. 
    36  
    37  * [http://d.hatena.ne.jp/enakai00/20120522/1337650181 PF_PACKETの仕組み - めもめも] 
    38  > Socketをオープンする際のお作法(呪文?)は次のとおりで、通常は、第一引数に「PF_INET」(もしくはAF_INET)を指定します。 
    39  > {{{ 
    40  > sock = socket(PF_INET, SOCK_STREAM, htons(ETH_P_IP)); 
    41  > }}} 
    42  > ここに「PF_PACKET」を指定することで、受信直後の生パケットをユーザ空間のアプリケーションで受け取ることができるようになります。これは、パケットのコピーを受け取っているだけなので、このパケットを受け取るべき本来のアプリケーションにもちゃんと同じパケットは届きます。 
    43  
    44  * [http://togetter.com/li/283316 TCP socketではwriteの後すぐにcloseしてはいけない - Togetter] 
    45  > TCP socketではwriteの後すぐにcloseしてはいけない。 
    46  > 相手側に全てのデータが届いてからcloseする必要がある。 
    47  > shutdown で書き込み側だけハーフクローズするとよい。 
    48  > 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。 
    4922 
    5023 = Malbolge = 
     
    9972 > debug: executable 
    10073 > }}} 
     74 
     75 = System Programming = 
     76 
     77 * [http://cboard.cprogramming.com/networking-device-communication/93683-checking-if-file-descriptor-valid.html#post678998 Checking if a file descriptor is valid] 
     78 > {{{#!c 
     79 > int is_valid_fd(int fd) 
     80 > { 
     81 >     return fcntl(fd, F_GETFL) != -1 || errno != EBADF; 
     82 > } 
     83 > }}} 
     84 
     85 * [http://www.linuxquestions.org/questions/programming-9/sockets-af_packet-versus-pf_packet-942143/ sockets: AF_PACKET versus PF_PACKET] 
     86 > Yes. AF_foo means address family foo, and PF_foo means protocol family foo. In Linux, they are always been the same values, I believe. 
     87 > Traditionally, the PF_foo constants were used for socket(), but AF_foo in the struct sockaddr structure. 
     88 > 
     89 > Thus, today, there really should be no difference between AF_foo and PF_foo. 
     90 
     91 * [http://d.hatena.ne.jp/enakai00/20120522/1337650181 PF_PACKETの仕組み - めもめも] 
     92 > Socketをオープンする際のお作法(呪文?)は次のとおりで、通常は、第一引数に「PF_INET」(もしくはAF_INET)を指定します。 
     93 > {{{ 
     94 > sock = socket(PF_INET, SOCK_STREAM, htons(ETH_P_IP)); 
     95 > }}} 
     96 > ここに「PF_PACKET」を指定することで、受信直後の生パケットをユーザ空間のアプリケーションで受け取ることができるようになります。これは、パケットのコピーを受け取っているだけなので、このパケットを受け取るべき本来のアプリケーションにもちゃんと同じパケットは届きます。 
     97 
     98 * [http://togetter.com/li/283316 TCP socketではwriteの後すぐにcloseしてはいけない - Togetter] 
     99 > TCP socketではwriteの後すぐにcloseしてはいけない。 
     100 > 相手側に全てのデータが届いてからcloseする必要がある。 
     101 > shutdown で書き込み側だけハーフクローズするとよい。 
     102 > 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。