ソケット (BSD)
bind() はソケットにアドレスを設定する。socket() で生成された時点では、ソケットはアドレスファミリは指定されているが、アドレスは設定されていない。ソケットは、コネクションを受け付ける前にバインド(アドレス設定)される必要がある。以下の引数がある。
sockfd - バインドすべきソケットの記述子
addr - バインドすべきアドレスを表す sockaddr 構造体へのポインタ
addrlen - sockaddr 構造体の大きさ
成功すると 0 を返し、エラーが発生すると -1 を返す。
UDP はコネクションレスのプロトコルであり、パケットが必ず相手に届くことは保証されない。UDPパケットは順序通りに届くとは限らず、1つのパケットが複数個届くこともありうるし、全く届かないこともある。このようにほとんど何も保証されないため、UDP は TCP に比べてオーバヘッドが小さい。コネクションレスであるとは、2つのホスト間にコネクションやストリームといったものがなく、データが単に個々のパケット(datagram)として届けられることを意味している。
UDP のアドレス空間、すなわちUDPポート番号は、TCPポートとは別物である。