ddp

Autres langues

Langue: ja

Autres versions - même langue

Version: 1999-05-01 (openSuse - 09/10/07)

Section: 7 (Divers)

̾Á°

ddp - Linux ¤Ç¤Î AppleTalk ¥×¥í¥È¥³¥ë¤Î¼ÂÁõ

½ñ¼°

#include <sys/socket.h>
#include <netatalk/at.h>

ddp_socket = socket(PF_APPLETALK, SOCK_DGRAM, 0);
raw_socket = socket(PF_APPLETALK, SOCK_RAW, protocol);

ÀâÌÀ

Linux ¤Ï Inside Appletalk ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë Appletalk ¥×¥í¥È¥³¥ë¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£ ¥«¡¼¥Í¥ë¤Ë¤¢¤ë¤Î¤Ï DDP ÁØ¤È AARP ¤À¤±¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï netatalk ¥×¥í¥È¥³¥ë¥é¥¤¥Ö¥é¥ê¤òÄ̤·¤ÆÍøÍѤµ¤ì¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ ¤³¤Î¥Ú¡¼¥¸¤Ï DDP ÁؤòľÀÜÍøÍѤ·¤¿¤¤¥æ¡¼¥¶¡¼¤Î¤¿¤á¤Ë¡¢ ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òµ­½Ò¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£

Appletalk ¤È¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤È¤ÎÄÌ¿®¤Ë¤Ï¡¢ BSD ¸ß´¹¤Î¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍøÍѤ¹¤ë¡£ ¥½¥±¥Ã¥È¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï socket(7) ¤ò¸«¤è¡£

Appletalk ¥½¥±¥Ã¥È¤Ï¡¢ ¥½¥±¥Ã¥È¥Õ¥¡¥ß¥ê¡¼¤Î°ú¿ô¤Ë PF_APPLETALK ¤ò»ØÄꤷ¤Æ socket(2) ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¡£»ØÄê¤Ç¤­¤ë¥½¥±¥Ã¥È¥¿¥¤¥×¤Ï¡¢ ddp ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï SOCK_DGRAM¡¢ raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¾ì¹ç¤Ë¤Ï SOCK_RAW ¤Ç¤¢¤ë¡£ protocol ¤ÏÁ÷¼õ¿®¤µ¤ì¤ë Appletalk ¥×¥í¥È¥³¥ë¤Ç¤¢¤ë¡£ ¥½¥±¥Ã¥È¥¿¥¤¥×¤Ë SOCK_RAW ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¥×¥í¥È¥³¥ë¤Ë ATPROTO_DDP ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

raw ¥½¥±¥Ã¥È¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ CAT_NEW_RAW ¸¢¸Â¤ò»ý¤Ã¤¿¥×¥í¥»¥¹¤Ç¤Ê¤¤¤È¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¡£

¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È

Appletalk ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Èֹ桦¥Î¡¼¥ÉÈֹ桦¥Ý¡¼¥ÈÈÖ¹æ¤Î ÁȤ߹ç¤ï¤»¤ÇÄêµÁ¤µ¤ì¤ë¡£

struct at_addr {

    u_short        s_net;

    u_char         s_node;

};



struct sockaddr_atalk {

    sa_family_t    sat_family;    /* address family */

    u_char         sat_port;      /* port */

    struct at_addr sat_addr;      /* net/node */

};



sat_family ¤Ï¾ï¤Ë AF_APPLETALK ¤ËÀßÄꤹ¤ë¡£ sat_port ¤Ï¥Ý¡¼¥È¤òÍ¿¤¨¤ë¡£¥Ý¡¼¥ÈÈֹ椬 129 °Ê²¼¤Î¥Ý¡¼¥È¤Ï ¡ÖͽÌó¥Ý¡¼¥È(reserved port)¡× ¤È¸Æ¤Ð¤ì¤ë¡£¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ CAP_NET_BIND_SERVICE ¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¡¢¤³¤Î¤è¤¦¤Ê¥½¥±¥Ã¥È¤ò bind(2) ¤Ç¤­¤ë¡£ sat_addr ¤Ï¥Û¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£ struct at_addr ¤Î¥á¥ó¥Ð¡¼ s_net ¤Ë¤Ï¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤ò¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤ÇÍ¿¤¨¤ë¡£ÃÍ AT_ANYNET ¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¡¢¡Ö¤³¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡×¤â°ÅÌۤΤ¦¤Á¤Ë´Þ¤Þ¤ì¤ë¡£ struct at_addr ¤Î¥á¥ó¥Ð¡¼ s_node ¤Ë¤Ï¥Û¥¹¥È¤Î¥Î¡¼¥ÉÈÖ¹æ¤òÍ¿¤¨¤ë¡£ÃÍ AT_ANYNODE ¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç¡¢¡Ö¤³¤Î¥Î¡¼¥É¡×¤â°ÅÌۤΤ¦¤Á¤Ë´Þ¤Þ¤ì¤ë¡£ÃÍ ATADDR_BCAST ¤Ï¥í¡¼¥«¥ë¤Ê¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£

¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó

¥×¥í¥È¥³¥ë¸ÇÍ­¤Î¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ï¤Ê¤¤¡£

SYSCTL

Appletalk ¤Î¥°¥í¡¼¥Ð¥ë¥Ñ¥é¥á¡¼¥¿¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ sysctl ¤òÄ̤·¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤ì¤é¤Î sysctl ¤Ø¥¢¥¯¥»¥¹¤¹¤ë¤Ë¤Ï¡¢ proc/sys/net/atalk/* ¥Õ¥¡¥¤¥ë¤òÆɤ߽ñ¤­¤¹¤ëÊýË¡¤È¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÂФ·¤Æ sysctl(2) ¤òÍѤ¤¤ëÊýË¡¤¬¤¢¤ë¡£
aarp-expiry-time
AARP ¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê¤òÇË´þ¤¹¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¤¥ó¥¿¡¼¥Ð¥ë (ÉÃñ°Ì)¡£
aarp-resolve-time
AARP ¥­¥ã¥Ã¥·¥å¥¨¥ó¥È¥ê¤¬²ò·è¤µ¤ì¤ë¤Þ¤Ç¤Î¥¿¥¤¥à¥¤¥ó¥¿¡¼¥Ð¥ë (ÉÃñ°Ì)¡£
aarp-retransmit-limit
AARP ¥¯¥¨¥ê¡¼¤ÎºÇÂçºÆÁ÷¿®²ó¿ô¡£¤³¤Î²ó¿ô¤ò±Û¤¨¤ë¤È¡¢ ¤½¤Î¥Î¡¼¥É¤Ï dead ¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£
aarp-tick-time
¥¿¥¤¥Þ¡¼Æ°ºî¤¹¤ë AARP ¤Î¥¿¥¤¥Þ¡¼¥ì¡¼¥È (ÉÃñ°Ì)

¥Ç¥Õ¥©¥ë¥È¤ÎÃͤǻÅÍͤ˥ޥåÁ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ Êѹ¹¤¹¤ëɬÍפÏÁ´¤¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£

ioctl

socket(7) ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î ioctl ¤¬ ddp ¤Ë¤âŬÍѤµ¤ì¤ë¡£

¥¨¥é¡¼

ENOTCONN
¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ÏÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤À¤¬¡¢ ¤½¤Î¥½¥±¥Ã¥È¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
EINVAL
ÅϤ·¤¿°ú¿ô¤¬ÉÔÀµ¡£
EMSGSIZE
¥Ç¡¼¥¿¥°¥é¥à¤¬ DDP MTU ¤è¤êÂ礭¤¤¡£
EACCES
¥æ¡¼¥¶¤¬¹Ô¤ª¤¦¤È¤·¤¿Áàºî¤ËɬÍפʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ broadcast ¥Õ¥é¥°¤ò¥»¥Ã¥È¤»¤º¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ØÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡¢ ¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Ç¤Ê¤¯¡¢ CAP_NET_BIND_SERVICE ¸¢¸Â¤Î¤Ê¤¤¥×¥í¥»¥¹¤ÇÆø¢¥Ý¡¼¥È¤ò¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡¢¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£
EADDRINUSE
´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤·¤è¤¦¤È¤·¤¿¡£
ENOMEM ¤È ENOBUFS
¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
ENOPROTOOPT ¤È EOPNOTSUPP
ÅϤ·¤¿¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬ÉÔÀµ¡£
EPERM
¹â¤¤Í¥ÀèÅÙ¤ËÀßÄꤷ¤¿¤ê¡¢ÀßÄê¤òÊѹ¹¤·¤¿¤ê¡¢ »ØÄꤷ¤¿¥×¥í¥»¥¹¤ä¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤Î¤ËɬÍפʸ¢¸Â¤ò ¥æ¡¼¥¶¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
EADDRNOTAVAIL
¸ºß¤·¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬Í׵ᤵ¤ì¤¿¡£¤Þ¤¿¤Ï Í׵ᤵ¤ì¤¿¥½¡¼¥¹¥¢¥É¥ì¥¹¤¬¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ç¤Ê¤¤¡£
EAGAIN
Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ·¤Æ¥Ö¥í¥Ã¥¯¤¹¤ëÁàºî¤ò¹Ô¤Ã¤¿¡£
ESOCKTNOSUPPORT
¥½¥±¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£¤Þ¤¿¤Ï̤ÃΤΥ½¥±¥Ã¥È¥¿¥¤¥×¤¬Í׵ᤵ¤ì¤¿¡£
EISCONN
ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ connect(2) ¤¬¸Æ¤Ð¤ì¤¿¡£
EALREADY
Èó¥Ö¥í¥Ã¥­¥ó¥°¥½¥±¥Ã¥È¤ËÂФ¹¤ëÀܳÁàºî¤¬´û¤Ë¼Â¹ÔÃæ¤Ç¤¢¤ë¡£
ECONNABORTED
accept(2) ¤ÎÅÓÃæ¤ÇÀܳ¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¡£
EPIPE
Àܳ¤¬ÀèÊý¤Ë¤è¤Ã¤Æ¡¢Ä̾ï°Ê³°¤Î¤ä¤êÊý¤Ç¥¯¥í¡¼¥º¤Þ¤¿¤Ï¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤¿¡£
ENOENT
¥Ñ¥±¥Ã¥È¤¬ÅþÃ夷¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤ËÂФ·¤Æ SIOCGSTAMP ¤¬¸Æ¤Ð¤ì¤¿¡£
EHOSTUNREACH
¹Ô¤­À襢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤¹¤ë¥¨¥ó¥È¥ê¤¬¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Ë¤Ê¤¤¡£
ENODEV
¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤¬¤Ê¤¤¡£¤¢¤ë¤¤¤Ï IP ¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
ENOPKG
¥«¡¼¥Í¥ë¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£

¥Ð¡¼¥¸¥ç¥ó

Appletalk ¤Ï Linux 2.0 °Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£ sysctl ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï Linux 2.2 ¤«¤é¿·¤¿¤ËƳÆþ¤µ¤ì¤¿¡£

Ãí°Õ

SO_BROADCAST ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë»þ¤Ë¤Ï¿µ½Å¤Î¾å¤Ë¤â¿µ½Å¤Ë¤Ê¤Ã¤Æ¤Û¤·¤¤¡£ Linux ¤Ç¤Ï¤³¤ì¤ËÆø¢¤òɬÍפȤ·¤Ê¤¤¡£ ÉÔÃí°Õ¤Ë¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤¦¤È¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¤Î¾õÂÖ¤¬´Êñ¤ËÊѹ¹¤µ¤ì¤Æ¤·¤Þ¤¦¡£

°Ü¿¢À­

´ðËÜŪ¤Ê Appletalk ¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï BSD ͳÍè¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë netatalk ¤È¸ß´¹À­¤¬¤¢¤ë¡£Â¿¤¯¤Î BSD ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ ¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥Õ¥ì¡¼¥à¤òÁ÷¿®¤·¤è¤¦¤È¤·¤¿¤È¤­¤Î SO_BROADCAST ¤Î¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤¹¤ë¡£¤³¤ì¤Ï¸ß´¹À­¤ÎÌäÂê¤È¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

raw ¥½¥±¥Ã¥È¥â¡¼¥É¤Ï Linux ÆÈÆäΤâ¤Î¤Ç¡¢¤â¤¦°ìÊý¤Î¼ÂÁõ¤Ç¤¢¤ë CAP ¥Ñ¥Ã¥±¡¼¥¸¤ä¡¢ Appletalk ¥â¥Ë¥¿¥Ä¡¼¥ë¤ò¤è¤ê´Êñ¤Ë¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¥Ð¥°

¥¨¥é¡¼¤ÎÃͤ¬¤Þ¤Ã¤¿¤¯¼óÈø°ì´Ó¤·¤Æ¤¤¤Ê¤¤¡£

¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¡¦¥Ç¥Ð¥¤¥¹¡¦ AARP ¥Æ¡¼¥Ö¥ë¡¦¤½¤Î¾¤Î¥Ç¥Ð¥¤¥¹¤ò ÀßÄꤹ¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë ioctl ¤¬¤Þ¤Àµ­½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

´ØÏ¢¹àÌÜ

recvmsg(2), sendmsg(2), capabilities(7), socket(7)