スポンサーリンク

UDP(4) FreeBSD カーネルインタフェースマニュアル UDP(4)

名称

udp − インターネットユーザデータグラムプロトコル

書式

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int

socket(AF_INET, SOCK_DGRAM, 0);

解説

UDP は単純で信頼性のないデータグラムプロトコルであり、インターネットプロ トコルファミリにおいて SOCK_DGRAM として抽象化された機能をサポートするも のとして使用されます。 UDP ソケットはコネクションレス型であり、普通 sendto(2) 及び recvfrom(2) コールと共に使用されます。ただし、後で送られる パケットの宛先を固定する目的で connect(2) コールも使用できます (その場合 には普通 recv(2) または read(2) 、及び send(2) または write(2) システム コールと共に使用されます)。

UDP のアドレスフォーマットは TCP で使用されるものと同一です。特に UDP は 標準のインターネットアドレスフォーマットに加え、ポート識別子を提供しま す。 UDP ポート空間は TCP ポート空間とは分離していることに注意してくださ い (すなわち、 UDP ポートは TCP ポートと ‘‘接続できません’’ )。加えて、ブ ロードキャストパケットは予約された ‘‘ブロードキャストアドレス’’ を用いて 送信されます (下位層のネットワークがこれをサポートしているものと仮定して います)。ブロードキャストアドレスはネットワークインタフェースに依存しま す。

IP トランスポート層におけるオプションは UDP で使用できます。本件について は ip(4) を参照してください。

診断

ソケット操作の失敗の際には次のエラーのうちの一つが返されます:

       [EISCONN]

既にコネクションが確立されているソケットに対しさらにコネ クションを確立させようとした時、あるいは既にソケットのコ ネクションが確立されているのに、宛先アドレスを指定して データグラムを送信しようとした時

[ENOTCONN]
ソケットのコネクションが確立されていない場合に、宛先アド レスの指定をせずデータグラムの送信を行おうとした時

[ENOBUFS]
内部的なデータ構造のためのメモリが不足した時

[EADDRINUSE]
既に割り当てられているポートに対しソケットを作成しようと した時

[EADDRNOTAVAIL]
対応したネットワークインタフェースが存在しないネットワー クアドレスを指定し、ソケットを作成しようとした時

関連項目

getsockopt(2), recv(2), send(2), socket(2), inet(4), intro(4), ip(4)

歴史

udp プロトコルは 4.2BSD から登場しました。

4.2 Berkeley Distribution June 5, 1993 4.2 Berkeley Distribution

スポンサーリンク