| 
    JunkBox_Lib++ (for Windows) 1.10.1
    
   | 
 
ネットワーク用ライブラリヘッダ for IPv4/IPv6 More...


Go to the source code of this file.
Macros | |
| #define | _WINSOCK_DEPRECATED_NO_WARNINGS | 
| #define | socklen_t int | 
| #define | _WINSOCK_DEPRECATED_NO_WARNINGS | 
| #define | udp_server_socket(p, a) _udp_server_socket((p), (a), AF_UNSPEC) | 
| #define | udp_server_socket_ipv4(p) _udp_server_socket((p), NULL, AF_INET) | 
| #define | udp_server_socket_ipv6(p, a) _udp_server_socket((p), (a), AF_INET6) | 
| #define | udp_server_socket_setopt(p, o, v, l, a) _udp_server_socket_setopt((p), (o), (v), (l), (a), AF_UNSPEC) | 
| #define | udp_server_socket_setopt_ipv4(p, o, v, l) _udp_server_socket_setopt((p), (o), (v), (l), NULL, AF_INET) | 
| #define | udp_server_socket_setopt_ipv6(p, o, v, l, a) _udp_server_socket_setopt((p), (o), (v), (l), (a), AF_INET6) | 
| #define | udp_client_socket(h, p, a) _udp_client_socket((h), (p), (a), AF_UNSPEC) | 
| #define | udp_client_socket_ipv4(h, p, a) _udp_client_socket((h), (p), (a), AF_INET) | 
| #define | udp_client_socket_ipv6(h, p, a) _udp_client_socket((h), (p), (a), AF_INET6) | 
| #define | udp_bind(s, p) _udp_bind((s), (p), AF_UNSPEC) | 
| #define | udp_bind_ipv4(s, p) _udp_bind((s), (p), AF_INET) | 
| #define | udp_bind_ipv6(s, p) _udp_bind((s), (p), AF_INET6) | 
| #define | udp_bind_setopt(s, p, o, v, l) _udp_bind_setopt((s), (p), (o), (v), (l), AF_UNSPEC) | 
| #define | udp_bind_setopt_ipv4(s, p, o, v, l) _udp_bind_setopt((s), (p), (o), (v), (l), AF_INET) | 
| #define | udp_bind_setopt_ipv6(s, p, o, v, l) _udp_bind_setopt((s), (p), (o), (v), (l), AF_INET6) | 
| #define | tcp_server_socket(p) _tcp_server_socket((p), AF_UNSPEC) | 
| #define | tcp_server_socket_ipv4(p) _tcp_server_socket((p), AF_INET) | 
| #define | tcp_server_socket_ipv6(p) _tcp_server_socket((p), AF_INET6) | 
| #define | tcp_server_socket_setop(p, o, v, l) _tcp_server_socket_setopt((p), (o), (v), (l), AF_UNSPEC) | 
| #define | tcp_server_socket_setop_ipv4(p, o, v, l) _tcp_server_socket_setopt((p), (o), (v), (l), AF_INET) | 
| #define | tcp_server_socket_setop_ipv6(p, o, v, l) _tcp_server_socket_setopt((p), (o), (v), (l), AF_INET6) | 
| #define | tcp_server_bind(p) _tcp_server_bind((p), AF_UNSPEC) | 
| #define | tcp_server_bind_ipv4(p) _tcp_server_bind((p), AF_INET) | 
| #define | tcp_server_bind_ipv6(p) _tcp_server_bind((p), AF_INET6) | 
| #define | tcp_server_bind_setopt(p, o, v, l) _tcp_server_bind_setopt((p), (o), (v), (l), AF_UNSPEC) | 
| #define | tcp_server_bind_setopt_ipv4(p, o, v, l) _tcp_server_bind_setopt((p), (o), (v), (l), AF_INET) | 
| #define | tcp_server_bind_setopt_ipv6(p, o, v, l) _tcp_server_bind_setopt((p), (o), (v), (l), AF_INET6) | 
| #define | tcp_client_socket(h, p) _tcp_client_socket((h), (p), AF_UNSPEC) | 
| #define | tcp_client_socket_ipv4(h, p) _tcp_client_socket((h), (p), AF_INET) | 
| #define | tcp_client_socket_ipv6(h, p) _tcp_client_socket((h), (p), AF_INET6) | 
| #define | tcp_client_bind_socket(h, s, c) _tcp_client_bind_socket((h), (c), (s), AF_UNSPEC) | 
| #define | tcp_client_bind_socket_ipv4(h, s, c) _tcp_client_bind_socket((h), (c), (s), AF_INET) | 
| #define | tcp_client_bind_socket_ipv6(h, s, c) _tcp_client_bind_socket((h), (c), (s), AF_INET6) | 
| #define | tcp_bind(s, p) _tcp_bind((s), (p), AD_UNSPEC) | 
| #define | tcp_bind_ipv4(s, p) _tcp_bind((s), (p), AD_INET) | 
| #define | tcp_bind_ipv6(s, p) _tcp_bind((s), (p), AD_INET6) | 
| #define | tcp_bind_setopt(s, p, o, v, l) _tcp_bind_setopt((s), (p), (o), (v), (l), AF_UNSPEC) | 
| #define | tcp_bind_setopt_ipv4(s, p, o, v, l) _tcp_bind_setopt((s), (p), (o), (v), (l), AF_INET) | 
| #define | tcp_bind_setopt_ipv6(s, p, o, v, l) _tcp_bind_setopt((s), (p), (o), (v), (l), AF_INET6) | 
| #define | tcp_connect(s, h, p) _tcp_connect((s), (h), (p), AF_UNSPEC) | 
| #define | tcp_connect_ipv4(s, h, p) _tcp_connect((s), (h), (p), AF_INET) | 
| #define | tcp_connect_ipv6(s, h, p) _tcp_connect((s), (h), (p), AF_INET6) | 
| #define | udp_send_mesg(s, m, a) udp_send((s), (m), 0, (a)) | 
| #define | tcp_send_mesg(s, m) tcp_send((s), (m), 0) | 
| #define | make_sockaddr_bynum_ipv4(a, p) make_sockaddr_bynum((a), (p), AF_INET) | 
| #define | make_sockaddr_bynum_ipv6(a, p) make_sockaddr_bynum((a), (p), AF_INET6) | 
| #define | get_hostname(h) _get_hostname((h), AF_UNSPEC) | 
| #define | get_hostname_ipv4(h) _get_hostname((h), AF_INET) | 
| #define | get_hostname_ipv6(h) _get_hostname((h), AF_INET6) | 
| #define | get_hostname_bynum_ipv4(n) get_hostname_bynum((n), AF_INET) | 
| #define | get_hostname_bynum_ipv6(n) get_hostname_bynum((n), AF_INET6) | 
| #define | get_ipaddr_byname_ipv4(h) get_ipaddr_byname((h), AF_INET) | 
| #define | get_ipaddr_byname_ipv6(h) get_ipaddr_byname((h), AF_INET6) | 
| #define | get_ipaddr_byname_num_ipv4(h) get_ipaddr_byname_num((h), AF_INET) | 
| #define | get_ipaddr_byname_num_ipv6(h) get_ipaddr_byname_num((h), AF_INET6) | 
| #define | get_myipaddr_ipv4() get_myipaddr(AF_INET) | 
| #define | get_myipaddr_ipv6() get_myipaddr(AF_INET6) | 
| #define | get_myipaddr_num_ipv4() get_myipaddr_num(AF_INET) | 
| #define | get_myipaddr_num_ipv6() get_myipaddr_num(AF_INET6) | 
| #define | get_localip_bydest(h) _get_localip_bydest((h), AF_UNSPEC) | 
| #define | get_localip_bydest_ipv4(h) _get_localip_bydest((h), AF_INET) | 
| #define | get_localip_bydest_ipv6(h) _get_localip_bydest((h), AF_INET6) | 
| #define | get_localip() _get_localip_bydest("www.google.co.jp", AF_UNSPEC) | 
| #define | get_localip_ipv4() _get_localip_bydest("www.google.co.jp", AF_INET) | 
| #define | get_localip_ipv6() _get_localip_bydest("www.google.co.jp", AF_INET6) | 
| #define | get_mynetaddr_num_ipv4() get_mynetaddr_num(AF_INET) | 
| #define | get_mynetaddr_num_ipv6() get_mynetaddr_num(AF_INET6) | 
| #define | get_mynetaddr_ipv4() get_mynetaddr(AF_INET) | 
| #define | get_mynetaddr_ipv6() get_mynetaddr(AF_INET6) | 
| #define | to_address_num8_ipv4(a, m) to_address_num((a), (m), 1, AF_INET) | 
| IPv4 アドレス(文字列)→ [IPv4 アドレス],[ネットマスク](数字8byte)   | |
| #define | to_address_num4_ipv4(a, m) to_address_num((a), (m), 0, AF_INET) | 
| IPv4 アドレス(文字列)→ [IPv4 アドレス](数字4byte)   | |
| #define | to_address_char8_ipv4(a) to_address_char((a), 1, AF_INET) | 
| [IPv4 アドレス],[ネットマスク](数字8byte)→ IPv4 アドレス(文字列)   | |
| #define | to_address_char4_ipv4(a) to_address_char((a), 0, AF_INET) | 
| [IPv4 アドレス](数字4byte)→ IPv4 アドレス(文字列)   | |
| #define | to_address_num32_ipv6(a, m) to_address_num((a), (m), 1, AF_INET6) | 
| IPv6 アドレス(文字列)→ [IPv6 アドレス],[ネットマスク](数字32byte)   | |
| #define | to_address_num16_ipv6(a, m) to_address_num((a), (m), 0, AF_INET6) | 
| IPv6 アドレス(文字列)→ [IPv6 アドレス](数字16byte)   | |
| #define | to_address_char32_ipv6(a) to_address_char((a), 1, AF_INET6) | 
| [IPv6 アドレス],[ネットマスク](数字32byte)→ IPv6 アドレス(文字列)   | |
| #define | to_address_char16_ipv6(a) to_address_char((a), 0, AF_INET6) | 
| [IPv6 アドレス](数字16byte)→ IPv6 アドレス(文字列)   | |
| #define | is_same_network_num_ipv4(a1, a2, m) is_same_network_num((a1), (a2), (m), AF_INET) | 
| #define | is_same_network_num_ipv6(a1, a2, m) is_same_network_num((a1), (a2), (m), AF_INET6) | 
| #define | udp_send_mesg_sockaddr_in(s, m, a) udp_send_sockaddr_in((s), (m), 0, (a)) | 
| #define | is_same_sockaddr_in(a, b) is_same_sockaddr((struct sockaddr*)&(a), (struct sockaddr*)&(b)) | 
| use is_same_sockaddr()   | |
Functions | |
| int | init_network (void) | 
| void | cleanup_network (void) | 
| int | _udp_server_socket (int port, struct addrinfo **info, int family) | 
| call socket(), bind()   | |
| int | _udp_server_socket_setopt (int, int, const void *, int, struct addrinfo **, int f) | 
| call socket(), setsockopt(), bind()   | |
| int | _udp_client_socket (char *host, int, struct addrinfo **, int family) | 
| call socket()   | |
| int | _udp_bind (int sock, int port, int family) | 
| call bind()   | |
| int | _udp_bind_setopt (int sock, int port, int opt, const void *, int len, int family) | 
| call setsockopt(), bind()   | |
| int | _tcp_server_socket (int port, int family) | 
| call socket(), bind(), listen()   | |
| int | _tcp_server_socket_setopt (int port, int opt, const void *, int len, int famliy) | 
| call socket(), setsockopt(), bind(), listen()   | |
| int | _tcp_server_bind (int port, int family) | 
| call socket(), bind()   | |
| int | _tcp_server_bind_setopt (int port, int opt, const void *, int len, int family) | 
| call socket(), setsockopt(), bind()   | |
| int | _tcp_client_socket (char *hname, int port, int family) | 
| call socket(), connect()   | |
| int | _tcp_client_bind_socket (char *host, int sport, int cport, int family) | 
| call socket(), bind(), connect()   | |
| int | _tcp_bind (int sock, int port, int family) | 
| call bind()   | |
| int | _tcp_bind_setopt (int sock, int port, int opt, const void *, int len, int family) | 
| call setsockopt(), bind()   | |
| int | _tcp_connect (int sock, char *host, int port, int family) | 
| call connect()   | |
| int | accept_intr (int, struct sockaddr *, socklen_t *) | 
| call accept()   | |
| int | socket_close (int sock) | 
| call shutdown(), close()   | |
| int | set_nonblock_socket (int sock) | 
| int | set_block_socket (int sock) | 
| int | get_valid_udp_socket (int min, int max, unsigned short *port) | 
| int | get_valid_tcp_server_socket (int min, int max, unsigned short *port) | 
| int | get_valid_tcp_client_socket (int min, int max, char *hostname, unsigned short sport, unsigned short *cport) | 
| int | udp_recv (int, char *, int, struct addrinfo *) | 
| int | udp_send (int, char *, int, struct addrinfo *) | 
| int | tcp_recv (int, char *, int) | 
| int | tcp_send (int, char *, int) | 
| int | udp_recv_wait (int sock, char *data, int size, struct addrinfo *sv_addr, int tm) | 
| int | tcp_recv_wait (int sock, char *data, int sz, int tm) | 
| int | tcp_send_mesgln (int, char *) | 
| int | tcp_recv_mstream (int sock, char *mesg, int sz, mstream *sb, int tm) | 
| int | recv_wait (int sock, int tm) | 
| int | recv_wait_twin (int sock1, int sock2, int tm) | 
| int | send_wait (int sock, int tm) | 
| struct sockaddr * | make_sockaddr_bynum (unsigned char *addr, int port, int family) | 
| IPv4/IPv6 対応   | |
| struct sockaddr * | make_sockaddr_bystr (const char *addr, int port) | 
| IPv4/IPv6 対応   | |
| char * | _get_hostname (const char *host, int family) | 
| IPv4/IPv6 アドレス(文字列), FQDN → ホスト名(文字列)   | |
| char * | get_hostname_bynum (unsigned char *bin, int family) | 
| IPv4/IPv6 アドレス(バイナリ)→ ホスト名(文字列)   | |
| char * | get_hostname_bystr (const char *str) | 
| IPv4/IPv6 アドレス(文字列) → ホスト名(文字列)   | |
| char * | get_ipaddr_byname (const char *host, int family) | 
| ホスト名 → IPv4/IPv6 アドレス(文字列)   | |
| unsigned char * | get_ipaddr_byname_num (const char *h, int family) | 
| ホスト名 → IPv4/IPv6 アドレス(バイナリ)   | |
| char * | get_myipaddr (int family) | 
| 自分の [IPv4/IPv6 ネットワークアドレス]/[ネットマスク](文字列)   | |
| unsigned char * | get_myipaddr_num (int family) | 
| 自分の [IPv4/IPv6 アドレス],[ネットマスク](バイナリ)   | |
| char * | _get_localip_bydest (const char *host, int family) | 
| 自分の IPv4/IPv6 アドレス(文字列)   | |
| unsigned char * | get_mynetaddr_num (int family) | 
| 自分の IPv4/IPv6 ネットワークアドレス(バイナリ)   | |
| char * | get_mynetaddr (int family) | 
| 自分の IPv4/IPv6 ネットワークアドレス(文字列)   | |
| unsigned char * | to_address_num (char *, int md, int mk, int family) | 
| IPv4/IPv6 アドレス(文字列)→ [IPv4/IPv6 アドレス],[ネットマスク](数字8/32Byte)   | |
| char * | to_address_char (unsigned char *addr, int mask, int family) | 
| [IPv4/IPv6 アドレス],[ネットマスク](数字8/32Byte)→ IPv4/IPv6 アドレス(文字列)   | |
| int | is_same_sockaddr (struct sockaddr *addr1, struct sockaddr *addr2) | 
| int | is_same_network (char *addr1, char *addr2, char *mask) | 
| int | is_same_network_num (unsigned char *addr1, unsigned char *addr2, unsigned char *mask, int family) | 
| void | udp_hole_punching (int sock, struct addrinfo *addr, int num) | 
| int | udp_client_socket_sockaddr_in (char *, int, struct sockaddr_in *) | 
| use udp_client_socket()   | |
| int | udp_recv_sockaddr_in (int, char *, int, struct sockaddr_in *) | 
| use udp_recv()   | |
| int | udp_send_sockaddr_in (int, char *, int, struct sockaddr_in *) | 
| use udp_send()   | |
| int | udp_recv_wait_sockaddr_in (int sock, char *data, int size, struct sockaddr_in *sv_addr, int tm) | 
| use udp_recv_wait()   | |
| struct sockaddr_in | get_sockaddr_in (char *hostname, unsigned short cport) | 
| struct sockaddr_in | get_sockaddr_in_bynum (char *ipnum, unsigned short cport) | 
| struct sockaddr_in | get_local_sockaddr_in (unsigned short cport) | 
| unsigned char * | get_ipaddr_num_ipv4 (struct in_addr) | 
| 構造体 → IPv4 アドレス(バイナリ) use get_ipaddr_byname_num()   | |
| char * | get_ipaddr_ipv4 (struct in_addr) | 
| 構造体 → IPv4 アドレス(文字列) use get_ipaddr_byname()   | |
| void | udp_hole_punching_sockaddr_in (int sock, struct sockaddr_in addr, int nm) | 
| use udp_hole_punching()   | |
Variables | |
| WSADATA | WsaData | 
Definition in file network.h.
| #define get_hostname | ( | h | ) | _get_hostname((h), AF_UNSPEC) | 
| #define get_hostname_bynum_ipv4 | ( | n | ) | get_hostname_bynum((n), AF_INET) | 
| #define get_hostname_bynum_ipv6 | ( | n | ) | get_hostname_bynum((n), AF_INET6) | 
| #define get_hostname_ipv4 | ( | h | ) | _get_hostname((h), AF_INET) | 
| #define get_hostname_ipv6 | ( | h | ) | _get_hostname((h), AF_INET6) | 
| #define get_ipaddr_byname_ipv4 | ( | h | ) | get_ipaddr_byname((h), AF_INET) | 
| #define get_ipaddr_byname_ipv6 | ( | h | ) | get_ipaddr_byname((h), AF_INET6) | 
| #define get_ipaddr_byname_num_ipv4 | ( | h | ) | get_ipaddr_byname_num((h), AF_INET) | 
| #define get_ipaddr_byname_num_ipv6 | ( | h | ) | get_ipaddr_byname_num((h), AF_INET6) | 
| #define get_localip | ( | ) | _get_localip_bydest("www.google.co.jp", AF_UNSPEC) | 
| #define get_localip_bydest | ( | h | ) | _get_localip_bydest((h), AF_UNSPEC) | 
| #define get_localip_bydest_ipv4 | ( | h | ) | _get_localip_bydest((h), AF_INET) | 
| #define get_localip_bydest_ipv6 | ( | h | ) | _get_localip_bydest((h), AF_INET6) | 
| #define get_localip_ipv4 | ( | ) | _get_localip_bydest("www.google.co.jp", AF_INET) | 
| #define get_localip_ipv6 | ( | ) | _get_localip_bydest("www.google.co.jp", AF_INET6) | 
| #define get_myipaddr_ipv4 | ( | ) | get_myipaddr(AF_INET) | 
ループバックでないインターフェイスのIPアドレスと ネットマスクを返す.
ネットマスクが必要ないなら get_localip_ipv4() を使用しても良い. 
| #define get_myipaddr_ipv6 | ( | ) | get_myipaddr(AF_INET6) | 
| #define get_myipaddr_num_ipv4 | ( | ) | get_myipaddr_num(AF_INET) | 
| #define get_myipaddr_num_ipv6 | ( | ) | get_myipaddr_num(AF_INET6) | 
| #define get_mynetaddr_ipv4 | ( | ) | get_mynetaddr(AF_INET) | 
| #define get_mynetaddr_ipv6 | ( | ) | get_mynetaddr(AF_INET6) | 
| #define get_mynetaddr_num_ipv4 | ( | ) | get_mynetaddr_num(AF_INET) | 
| #define get_mynetaddr_num_ipv6 | ( | ) | get_mynetaddr_num(AF_INET6) | 
| #define is_same_network_num_ipv4 | ( | a1, | |
| a2, | |||
| m ) is_same_network_num((a1), (a2), (m), AF_INET) | 
数字型アドレス が同じネットワークに属しているかどうかチェックする.
Definition at line 263 of file network.h.
Referenced by is_host_in_list(), and is_ipaddr_num_in_list().
| #define is_same_network_num_ipv6 | ( | a1, | |
| a2, | |||
| m ) is_same_network_num((a1), (a2), (m), AF_INET6) | 
| #define is_same_sockaddr_in | ( | a, | |
| b ) is_same_sockaddr((struct sockaddr*)&(a), (struct sockaddr*)&(b)) | 
| #define make_sockaddr_bynum_ipv4 | ( | a, | |
| p ) make_sockaddr_bynum((a), (p), AF_INET) | 
| #define make_sockaddr_bynum_ipv6 | ( | a, | |
| p ) make_sockaddr_bynum((a), (p), AF_INET6) | 
| #define socklen_t int | 
Definition at line 21 of file network.h.
Referenced by _get_localip_bydest(), udp_recv(), udp_recv_Buffer(), udp_recv_Buffer_sockaddr_in(), and udp_recv_sockaddr_in().
| #define tcp_bind_ipv4 | ( | s, | |
| p ) _tcp_bind((s), (p), AD_INET) | 
| #define tcp_bind_ipv6 | ( | s, | |
| p ) _tcp_bind((s), (p), AD_INET6) | 
| #define tcp_bind_setopt | ( | s, | |
| p, | |||
| o, | |||
| v, | |||
| l ) _tcp_bind_setopt((s), (p), (o), (v), (l), AF_UNSPEC) | 
| #define tcp_bind_setopt_ipv4 | ( | s, | |
| p, | |||
| o, | |||
| v, | |||
| l ) _tcp_bind_setopt((s), (p), (o), (v), (l), AF_INET) | 
| #define tcp_bind_setopt_ipv6 | ( | s, | |
| p, | |||
| o, | |||
| v, | |||
| l ) _tcp_bind_setopt((s), (p), (o), (v), (l), AF_INET6) | 
| #define tcp_client_bind_socket | ( | h, | |
| s, | |||
| c ) _tcp_client_bind_socket((h), (c), (s), AF_UNSPEC) | 
Definition at line 134 of file network.h.
Referenced by get_valid_tcp_client_socket().
| #define tcp_client_bind_socket_ipv4 | ( | h, | |
| s, | |||
| c ) _tcp_client_bind_socket((h), (c), (s), AF_INET) | 
| #define tcp_client_bind_socket_ipv6 | ( | h, | |
| s, | |||
| c ) _tcp_client_bind_socket((h), (c), (s), AF_INET6) | 
| #define tcp_client_socket | ( | h, | |
| p ) _tcp_client_socket((h), (p), AF_UNSPEC) | 
Definition at line 130 of file network.h.
Referenced by simple_web_proxy().
| #define tcp_client_socket_ipv4 | ( | h, | |
| p ) _tcp_client_socket((h), (p), AF_INET) | 
| #define tcp_client_socket_ipv6 | ( | h, | |
| p ) _tcp_client_socket((h), (p), AF_INET6) | 
| #define tcp_connect | ( | s, | |
| h, | |||
| p ) _tcp_connect((s), (h), (p), AF_UNSPEC) | 
| #define tcp_connect_ipv4 | ( | s, | |
| h, | |||
| p ) _tcp_connect((s), (h), (p), AF_INET) | 
| #define tcp_connect_ipv6 | ( | s, | |
| h, | |||
| p ) _tcp_connect((s), (h), (p), AF_INET6) | 
| #define tcp_server_bind | ( | p | ) | _tcp_server_bind((p), AF_UNSPEC) | 
| #define tcp_server_bind_ipv4 | ( | p | ) | _tcp_server_bind((p), AF_INET) | 
| #define tcp_server_bind_ipv6 | ( | p | ) | _tcp_server_bind((p), AF_INET6) | 
| #define tcp_server_bind_setopt | ( | p, | |
| o, | |||
| v, | |||
| l ) _tcp_server_bind_setopt((p), (o), (v), (l), AF_UNSPEC) | 
| #define tcp_server_bind_setopt_ipv4 | ( | p, | |
| o, | |||
| v, | |||
| l ) _tcp_server_bind_setopt((p), (o), (v), (l), AF_INET) | 
| #define tcp_server_bind_setopt_ipv6 | ( | p, | |
| o, | |||
| v, | |||
| l ) _tcp_server_bind_setopt((p), (o), (v), (l), AF_INET6) | 
| #define tcp_server_socket | ( | p | ) | _tcp_server_socket((p), AF_UNSPEC) | 
Definition at line 108 of file network.h.
Referenced by get_valid_tcp_server_socket().
| #define tcp_server_socket_ipv4 | ( | p | ) | _tcp_server_socket((p), AF_INET) | 
| #define tcp_server_socket_ipv6 | ( | p | ) | _tcp_server_socket((p), AF_INET6) | 
| #define tcp_server_socket_setop | ( | p, | |
| o, | |||
| v, | |||
| l ) _tcp_server_socket_setopt((p), (o), (v), (l), AF_UNSPEC) | 
| #define tcp_server_socket_setop_ipv4 | ( | p, | |
| o, | |||
| v, | |||
| l ) _tcp_server_socket_setopt((p), (o), (v), (l), AF_INET) | 
| #define tcp_server_socket_setop_ipv6 | ( | p, | |
| o, | |||
| v, | |||
| l ) _tcp_server_socket_setopt((p), (o), (v), (l), AF_INET6) | 
| #define to_address_char16_ipv6 | ( | a | ) | to_address_char((a), 0, AF_INET6) | 
| #define to_address_char32_ipv6 | ( | a | ) | to_address_char((a), 1, AF_INET6) | 
| #define to_address_char4_ipv4 | ( | a | ) | to_address_char((a), 0, AF_INET) | 
| #define to_address_char8_ipv4 | ( | a | ) | to_address_char((a), 1, AF_INET) | 
数字型の IPアドレス n 8Byteを文字型の [IPアドレス]/[ネットマスク] に変換する.
n は必ずネットマスクの情報を含み,長さが 8Byteでないといけない.8Byteより少ない場合は 恐らくセグメンテーションエラーを起こす.
to_address_num8()と対で使うのが安全. 
Definition at line 251 of file network.h.
Referenced by to_ipaddress_list().
| #define to_address_num16_ipv6 | ( | a, | |
| m ) to_address_num((a), (m), 0, AF_INET6) | 
| #define to_address_num32_ipv6 | ( | a, | |
| m ) to_address_num((a), (m), 1, AF_INET6) | 
| #define to_address_num4_ipv4 | ( | a, | |
| m ) to_address_num((a), (m), 0, AF_INET) | 
| #define to_address_num8_ipv4 | ( | a, | |
| m ) to_address_num((a), (m), 1, AF_INET) | 
文字型のアドレス [IPアドレス]/[ネットマスク] (例:202.26.159.140/255.255.255.0)を 数字型のアドレス(unsigned char* num[8])8Byte へ変換する.
省略された場所は 0とみなされる(例:202.26/255 → 202.26.0.0/255.0.0.0) 
ネットマスク部全体が省略された場合は IPアドレス部に依存する.(202.26. → 202.26.0.0/255.255.0.0) 
CIDER形式にも対応.ただし,ネットマスク部の妥当性はチェックしない. 
Definition at line 249 of file network.h.
Referenced by is_host_in_list(), is_ipaddr_num_in_list(), print_address_in_list(), and to_ipaddress_list().
| #define udp_bind_ipv4 | ( | s, | |
| p ) _udp_bind((s), (p), AF_INET) | 
| #define udp_bind_ipv6 | ( | s, | |
| p ) _udp_bind((s), (p), AF_INET6) | 
| #define udp_bind_setopt | ( | s, | |
| p, | |||
| o, | |||
| v, | |||
| l ) _udp_bind_setopt((s), (p), (o), (v), (l), AF_UNSPEC) | 
| #define udp_bind_setopt_ipv4 | ( | s, | |
| p, | |||
| o, | |||
| v, | |||
| l ) _udp_bind_setopt((s), (p), (o), (v), (l), AF_INET) | 
| #define udp_bind_setopt_ipv6 | ( | s, | |
| p, | |||
| o, | |||
| v, | |||
| l ) _udp_bind_setopt((s), (p), (o), (v), (l), AF_INET6) | 
| #define udp_client_socket | ( | h, | |
| p, | |||
| a ) _udp_client_socket((h), (p), (a), AF_UNSPEC) | 
| #define udp_client_socket_ipv4 | ( | h, | |
| p, | |||
| a ) _udp_client_socket((h), (p), (a), AF_INET) | 
| #define udp_client_socket_ipv6 | ( | h, | |
| p, | |||
| a ) _udp_client_socket((h), (p), (a), AF_INET6) | 
| #define udp_send_mesg | ( | s, | |
| m, | |||
| a ) udp_send((s), (m), 0, (a)) | 
| #define udp_send_mesg_sockaddr_in | ( | s, | |
| m, | |||
| a ) udp_send_sockaddr_in((s), (m), 0, (a)) | 
| #define udp_server_socket | ( | p, | |
| a ) _udp_server_socket((p), (a), AF_UNSPEC) | 
Definition at line 82 of file network.h.
Referenced by get_valid_udp_socket().
| #define udp_server_socket_ipv4 | ( | p | ) | _udp_server_socket((p), NULL, AF_INET) | 
| #define udp_server_socket_ipv6 | ( | p, | |
| a ) _udp_server_socket((p), (a), AF_INET6) | 
| #define udp_server_socket_setopt | ( | p, | |
| o, | |||
| v, | |||
| l, | |||
| a ) _udp_server_socket_setopt((p), (o), (v), (l), (a), AF_UNSPEC) | 
| #define udp_server_socket_setopt_ipv4 | ( | p, | |
| o, | |||
| v, | |||
| l ) _udp_server_socket_setopt((p), (o), (v), (l), NULL, AF_INET) | 
| #define udp_server_socket_setopt_ipv6 | ( | p, | |
| o, | |||
| v, | |||
| l, | |||
| a ) _udp_server_socket_setopt((p), (o), (v), (l), (a), AF_INET6) | 
| char * _get_hostname | ( | const char * | addr, | 
| int | family ) | 
char* _get_hostname(const char* addr, int family)
IPv4/IPv6 アドレス(文字列)からホスト名を逆引きする.
FQDNを指定した場合は,正引きして逆引きするので,FQDNのチェックに使用できる.
| addr | IPアドレス(文字列)または FQDN | 
| family | プロトコルファミリー(AF_INET/AF_INET6) | 
Definition at line 1729 of file network.cpp.
References LNAME.
| char * _get_localip_bydest | ( | const char * | dest, | 
| int | family ) | 
char* _get_localip_bydest(const char* dest, int family)
接続先を指定して,そこへ接続する インターフェイスのIPアドレスを得る.自分自身の IPアドレスを得るもう一つの方法.
| dest | 接続先の IPv4/IPv6 アドレス または FQDN | 
| family | プロトコルファミリー(AF_INET/AF_INET6) | 
Definition at line 2064 of file network.cpp.
References LEN_IPADDR, LEN_IPADDR6, socket_close(), and socklen_t.

| int _tcp_bind | ( | int | sofd, | 
| int | port, | ||
| int | family ) | 
int _tcp_bind(int sofd, int port, int family) 
IPv4/IPv6 のTCPソケットにポートをバインドする.
| sofd | バインドするソケットの記述子. | 
| port | ポート番号 | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 834 of file network.cpp.
References itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, and socket_close().

| int _tcp_bind_setopt | ( | int | sofd, | 
| int | port, | ||
| int | opt, | ||
| const void * | optval, | ||
| int | optlen, | ||
| int | family ) | 
int _tcp_bind_setopt(int sofd, int port, int opt, const void* optval, int optlen, int family)
IPv4/IPv6 のTCPソケットにポートをバインドする.オプションの指定(setsockopt)が可能.
| sofd | バインドするソケットの記述子. | 
| port | ポート番号 | 
| opt | オプションの種類 | 
| optval | オプションデータ | 
| optlen | optval の長さ | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_OPTION_ERROR | オプションの設定に失敗. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 886 of file network.cpp.
References itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_OPTION_ERROR, and socket_close().

| int _tcp_client_bind_socket | ( | char * | hostname, | 
| int | sport, | ||
| int | cport, | ||
| int | family ) | 
int _tcp_client_bind_socket(char* hostname, int sport, int cport, int family) 
IPv4/IPv6 のTCPのクライアントソケットを作り,サーバに接続する.
この関数内で呼び出されるネットワーク関数: socket(), bind(), getaddrinfo(), connect()
| hostname | サーバ名 | 
| sport | サーバポート番号 | 
| cport | 自分のポート番号 | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
| JBXL_NET_CONNECT_ERROR | 接続に失敗. | 
Definition at line 767 of file network.cpp.
References itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_CONNECT_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_SOCKET_ERROR, and socket_close().

| int _tcp_client_socket | ( | char * | hostname, | 
| int | port, | ||
| int | family ) | 
int _tcp_client_socket(char* hostname, int port, int family)
IPv4/IPv6 のTCPのクライアントソケットを作り,サーバに接続する.
この関数内で呼び出されるネットワーク関数: socket(), getaddrinfo(), connect()
| hostname | サーバ名 | 
| port | サーバポート番号 | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
| JBXL_NET_CONNECT_ERROR | 接続に失敗. | 
Definition at line 712 of file network.cpp.
References itostr_ts(), JBXL_NET_CONNECT_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_SOCKET_ERROR, and socket_close().

| int _tcp_connect | ( | int | sock, | 
| char * | host, | ||
| int | port, | ||
| int | family ) | 
Definition at line 949 of file network.cpp.
References itostr_ts(), JBXL_NET_CONNECT_ERROR, JBXL_NET_INFO_ERROR, and socket_close().

| int _tcp_server_bind | ( | int | port, | 
| int | family ) | 
int _tcp_server_bind(int port, int family)
IPv4/IPv6 のTCPのサーバのソケット記述子を作り,バインドする. tcp_server_socket() との違いは listen()関数を呼び出さない点にある.
この関数内で呼び出されるネットワーク関数: socket(), bind()
| port | ポート番号. | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 562 of file network.cpp.
References FALSE, itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_OPTION_ERROR, JBXL_NET_SOCKET_ERROR, set_nonblock_socket(), socket_close(), and TRUE.

| int _tcp_server_bind_setopt | ( | int | port, | 
| int | opt, | ||
| const void * | optval, | ||
| int | optlen, | ||
| int | family ) | 
int _tcp_server_bind_setopt(int port, int opt, const void* optval, int optlen, int family)
IPv4/IPv6 のTCPのサーバのソケット記述子を作り,バインドする.オプションの指定(setsockopt)が可能. tcp_server_socket() との違いは listen()関数を呼び出さない点にある.
この関数内で呼び出されるネットワーク関数: socket(), setsockopt(), bind()
| port | ポート番号 | 
| opt | オプションの種類 | 
| optval | オプションデータ | 
| optlen | optval の長さ | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_OPTION_ERROR | オプションの設定に失敗. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 639 of file network.cpp.
References FALSE, itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_OPTION_ERROR, JBXL_NET_SOCKET_ERROR, set_nonblock_socket(), socket_close(), and TRUE.

| int _tcp_server_socket | ( | int | port, | 
| int | family ) | 
int _tcp_server_socket(int port, int family)
IPv4/IPv6 のTCPのサーバソケットを作り,リッスンにより接続要求を受けられる状態にする.
この関数に続いて accept()関数を呼ぶ事により,実際の接続待ち状態となる.
この関数内で呼び出されるネットワーク関数は socket(), bind(), listen()
| port | ポート番号.マイナスの場合は ノンブロックとなる. | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
| JBXL_NET_LISTEN_ERROR | リッスンに失敗. | 
Definition at line 396 of file network.cpp.
References FALSE, itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_LISTEN_ERROR, JBXL_NET_OPTION_ERROR, JBXL_NET_SOCKET_ERROR, set_nonblock_socket(), socket_close(), and TRUE.

| int _tcp_server_socket_setopt | ( | int | port, | 
| int | opt, | ||
| const void * | optval, | ||
| int | optlen, | ||
| int | family ) | 
int _tcp_server_socket_setopt(int port, int opt, const void* optval, int optlen, int family)
IPv4/IPv6 のTCPのサーバソケットを作り,リッスンにより接続要求を受けられる状態にする.
この関数に続いて accept()関数を呼ぶ事により,実際の接続待ち状態となる. オプションの指定(setsockopt)が可能.
この関数内で呼び出されるネットワーク関数は socket(), setsockopt(), bind(), listen()
| port | ポート番号.マイナスの場合は ノンブロックとなる. | 
| opt | オプションの種類 | 
| optval | オプションデータ | 
| optlen | optval の長さ | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_OPTION_ERROR | オプションの設定に失敗. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
| JBXL_NET_LISTEN_ERROR | リッスンに失敗. | 
Definition at line 482 of file network.cpp.
References FALSE, itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_LISTEN_ERROR, JBXL_NET_OPTION_ERROR, JBXL_NET_SOCKET_ERROR, set_nonblock_socket(), socket_close(), and TRUE.

| int _udp_bind | ( | int | sofd, | 
| int | port, | ||
| int | family ) | 
int _udp_bind(int sofd, int port, int family)
UDPソケットにポートをバインドする.
| sofd | バインドするソケットの記述子. | 
| port | ポート番号 | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 283 of file network.cpp.
References itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, and socket_close().

| int _udp_bind_setopt | ( | int | sofd, | 
| int | port, | ||
| int | opt, | ||
| const void * | optval, | ||
| int | optlen, | ||
| int | family ) | 
int _udp_bind_setopt(int sofd, int port, int opt, const void* optval, int optlen, int family)
IPv4/IPv6 のUDPソケットにポートをバインドする.オプションの指定(setsockopt)が可能.
| sofd | バインドするソケットの記述子. | 
| port | ポート番号 | 
| opt | オプションの種類 | 
| optval | オプションデータ | 
| optlen | optval の長さ | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_OPTION_ERROR | オプションの設定に失敗. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 332 of file network.cpp.
References itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_OPTION_ERROR, and socket_close().

| int _udp_client_socket | ( | char * | hostname, | 
| int | port, | ||
| struct addrinfo ** | sv_addr, | ||
| int | family ) | 
int _udp_client_socket(char* hostname, int port, struct addrinfo** sv_addr, int family)
UDPのクライアントソケットを作る. 正常終了した場合, *sv_addrにサーバの情報が格納される.
この関数内で呼び出されるネットワーク関数: socket(), getaddrinfo()
| hostname | サーバ名 | 
| port | サーバポート番号 | 
| sv_addr | addrinfo 構造体へのポインタへのポインタが返る.要 freeaddrinfo(*sv_addr) | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 237 of file network.cpp.
References itostr_ts(), JBXL_NET_INFO_ERROR, and JBXL_NET_SOCKET_ERROR.

| int _udp_server_socket | ( | int | port, | 
| struct addrinfo ** | sv_addr, | ||
| int | family ) | 
int _udp_server_socket(int port, struct addrinfo** sv_addr, int family)
IPv4/IPv6 の UDPサーバソケットを作り,接続待ち状態になる.
この関数内で呼び出されるネットワーク関数: socket(), bind()
| port | ポート番号 | 
| sv_addr | addrinfo 構造体へのポインタへのポインタが返る.要 freeaddrinfo(*sv_addr) | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 70 of file network.cpp.
References FALSE, itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_OPTION_ERROR, JBXL_NET_SOCKET_ERROR, OFF, ON, set_nonblock_socket(), socket_close(), and TRUE.

| int _udp_server_socket_setopt | ( | int | port, | 
| int | opt, | ||
| const void * | optval, | ||
| int | optlen, | ||
| struct addrinfo ** | sv_addr, | ||
| int | family ) | 
IPv4/IPv6 の UDPサーバソケットを作り,接続待ち状態になる.オプションの指定(setsockopt)が可能.
この関数内で呼び出されるネットワーク関数: socket(), setsockopt(), bind()
| port | ポート番号 | 
| opt | オプションの種類 | 
| optval | オプションデータ | 
| optlen | optval の長さ | 
| sv_addr | addrinfo 構造体へのポインタへのポインタが返る.要 freeaddrinfo(*sv_addr) | 
| family | プロトコルファミリー(AF_INET/AF_INET6/AF_UNSPEC). AF_UNSPEC の場合は先ずIPv6で接続を試み,不可ならIPv4で接続する. | 
| 0以上 | 作成されたソケット記述子. | 
| JBXL_NET_SOCKET_ERROR | ソケットが作成できなかった. | 
| JBXL_NET_OPTION_ERROR | オプションの設定に失敗. | 
| JBXL_NET_BIND_ERROR | バインドに失敗. | 
| JBXL_NET_INFO_ERROR | ホスト情報の取得に失敗. | 
Definition at line 156 of file network.cpp.
References FALSE, itostr_ts(), JBXL_NET_BIND_ERROR, JBXL_NET_INFO_ERROR, JBXL_NET_OPTION_ERROR, JBXL_NET_SOCKET_ERROR, OFF, ON, set_nonblock_socket(), socket_close(), and TRUE.

| int accept_intr | ( | int | sock, | 
| struct sockaddr * | cl_addr, | ||
| socklen_t * | cdlen ) | 
int accept_intr(int sock, struct sockaddr* cl_addr, socklen_t* cdlen)
accept()でブロック中に割り込みが掛かって,accept()が失敗で終了しても 再施行できるようにするためのラッパー関数 (for Solaris)
| sock | ソケット | 
| cl_addr | ソケットの情報が入る sockaddr 構造体へのポインタ | 
| cdlen | sockaddr 構造体(*cl_addr)のサイズ | 
| 0以上 | accept() で作成されたソケット記述子. | 
| -1 | エラー. | 
Definition at line 995 of file network.cpp.
| void cleanup_network | ( | void | ) | 
Definition at line 40 of file network.cpp.
| char * get_hostname_bynum | ( | unsigned char * | num, | 
| int | family ) | 
char* get_hostname_bynum(unsigned char* num, int family)
IPv4/IPv6 アドレス(バイナリ)からホスト名を逆引きする.
| num | IPv4/IPv6 アドレス(バイナリ) | 
| family | アドレスファミリー(AF_INET/AF_INET6) | 
Definition at line 1642 of file network.cpp.
References LNAME, and make_sockaddr_bynum().

| char * get_hostname_bystr | ( | const char * | addr | ) | 
char* get_hostname_bystr(const char* addr)
IPv4/IPv6 アドレス(文字列)からホスト名を逆引きする.
| addr | IPv4/IPv6 アドレス(文字列) | 
Definition at line 1684 of file network.cpp.
References LNAME, and make_sockaddr_bystr().

| char * get_ipaddr_byname | ( | const char * | hostname, | 
| int | family ) | 
char* get_ipaddr_byname(const char* hostname, int family)
ホスト名から IPv4/IPv6 アドレス(文字列)を獲得する.
| hostname | ホスト名 | 
| family | IPのアドレスファミリー AF_INET/AF_INET6 | 
Definition at line 1781 of file network.cpp.
References get_ipaddr_byname_num(), LEN_IPADDR, and LEN_IPADDR6.
Referenced by simple_web_proxy().


| unsigned char * get_ipaddr_byname_num | ( | const char * | hostname, | 
| int | family ) | 
unsigned char* get_ipaddr_byname_num(const char* hostname, int family)
ホスト名から IPv4/IPv6 アドレス(バイナリ)を獲得する.
| hostname | ホスト名 | 
| family | IPのアドレスファミリー AF_INET/AF_INET6 | 
Definition at line 1813 of file network.cpp.
Referenced by get_ipaddr_byname(), and to_address_num().

| char * get_ipaddr_ipv4 | ( | struct in_addr | sin_addr | ) | 
char* get_ipaddr_ipv4(struct in_addr sin_addr)
in_addr構造体から IPアドレスを獲得する.
| sin_addr | sockaddr_in 構造体の sin_addr メンバ. | 
Definition at line 2685 of file network.cpp.
References snprintf.
| unsigned char * get_ipaddr_num_ipv4 | ( | struct in_addr | sin_addr | ) | 
unsigned char* get_ipaddr_num_ipv4(struct in_addr sin_addr)
in_addr 構造体から IPアドレスを獲得する.
| sin_addr | sockaddr_in 構造体の sin_addr メンバ. | 
Definition at line 2717 of file network.cpp.
| struct sockaddr_in get_local_sockaddr_in | ( | unsigned short | cport | ) | 
Definition at line 2654 of file network.cpp.
| char * get_myipaddr | ( | int | family | ) | 
Definition at line 1858 of file network.cpp.
References LEN_IPADDR, LEN_IPADDR6, LNAME, OFF, ON, and snprintf.
Referenced by get_myipaddr_num().

| unsigned char * get_myipaddr_num | ( | int | family | ) | 
Definition at line 2008 of file network.cpp.
References get_myipaddr().
Referenced by get_mynetaddr_num().


| char * get_mynetaddr | ( | int | family | ) | 
char* get_mynetaddr(int family)
自分のネットワークアドレスを返す
| family | プロトコルファミリー(AF_INET/AF_INET6) | 
Definition at line 2142 of file network.cpp.
References get_mynetaddr_num(), LEN_IPADDR, and LEN_IPADDR6.

| unsigned char * get_mynetaddr_num | ( | int | family | ) | 
unsigned char* get_mynetaddr_num(int family)
自分のネットワークアドレスを返す
Definition at line 2177 of file network.cpp.
References get_myipaddr_num().
Referenced by get_mynetaddr().


| struct sockaddr_in get_sockaddr_in | ( | char * | hostname, | 
| unsigned short | cport ) | 
Definition at line 2619 of file network.cpp.
Referenced by get_sockaddr_in_Buffer().

| struct sockaddr_in get_sockaddr_in_bynum | ( | char * | ipnum, | 
| unsigned short | cport ) | 
Definition at line 2641 of file network.cpp.
| int get_valid_tcp_client_socket | ( | int | min, | 
| int | max, | ||
| char * | hostname, | ||
| unsigned short | sport, | ||
| unsigned short * | cport ) | 
Definition at line 1124 of file network.cpp.
References tcp_client_bind_socket.
| int get_valid_tcp_server_socket | ( | int | min, | 
| int | max, | ||
| unsigned short * | port ) | 
Definition at line 1102 of file network.cpp.
References tcp_server_socket.
| int get_valid_udp_socket | ( | int | min, | 
| int | max, | ||
| unsigned short * | port ) | 
Definition at line 1078 of file network.cpp.
References udp_server_socket.
| int init_network | ( | void | ) | 
Definition at line 26 of file network.cpp.
References WsaData.
| int is_same_network | ( | char * | addr1, | 
| char * | addr2, | ||
| char * | mask ) | 
int is_same_network(char* addr1, char* addr2, char* mask)
文字型アドレス addr1 と addr2が同じネットワークに属しているかどうかチェックする.
addr1, addr2 は FQDNでも可.
| addr1 | 比較するアドレス(文字型).FQDN は不可 | 
| addr2 | 比較するアドレス(文字型).FQDN は不可 | 
| mask | ネットマスク(文字型) | 
| TRUE | 同じネットワークである. | 
| FALSE | 同じネットワークでない. | 
Definition at line 2283 of file network.cpp.
References FALSE, is_same_network_num(), and to_address_num().

| int is_same_network_num | ( | unsigned char * | addr1, | 
| unsigned char * | addr2, | ||
| unsigned char * | mask, | ||
| int | family ) | 
int is_same_network_num(unsigned char* addr1, unsigned char* addr2, unsigned char* mask, int family)
数字型アドレス addr1 と addr2が同じネットワークに属しているかどうかチェックする.
| addr1 | 比較するアドレス(数字型)4/16Byte | 
| addr2 | 比較するアドレス(数字型)4/16Byte | 
| mask | ネットマスク(数字型)4/16Byte | 
| family | アドレスファミリー (AF_INET/AF_INET6) | 
| TRUE | 同じネットワークである. | 
| FALSE | 同じネットワークでない | 
Definition at line 2331 of file network.cpp.
Referenced by is_same_network().

| int is_same_sockaddr | ( | struct sockaddr * | addr1, | 
| struct sockaddr * | addr2 ) | 
int is_same_sockaddr(struct sockaddr* addr1, struct sockaddr* addr2)
addr1 と addr2が格納する IPアドレスとポート番号が同じかどうか検査する
| addr1 | 比較する sockaddr 構造体へのポインタ | 
| addr2 | 比較する sockaddr 構造体へのポインタ | 
| TRUE | 同じホスト | 
| FALSE | 違うホスト | 
Definition at line 2219 of file network.cpp.
| struct sockaddr * make_sockaddr_bynum | ( | unsigned char * | addr, | 
| int | port, | ||
| int | family ) | 
struct sockaddr* make_sockaddr_bynum(unsigned char* addr, int port, int family)
バイナリの IPv4/IPv6 アドレスとポート番号から 有効な struct sockaddr を作り出す
| addr | バイナリのIPアドレス(IPv4/IPv6) | 
| port | ポート番号 | 
| family | プロトコルファミリー(AF_INET/AF_INET6) | 
Definition at line 1556 of file network.cpp.
Referenced by get_hostname_bynum(), and make_sockaddr_bystr().

| struct sockaddr * make_sockaddr_bystr | ( | const char * | addr, | 
| int | port ) | 
struct sockaddr* make_sockaddr_bystr(const char* addr, int port)
文字列の IPv4/IPv6 アドレスとポート番号から 有効な struct sockaddr を作り出す
| addr | 文字列のIPアドレス(IPv4/IPv6) | 
| port | ポート番号 | 
Definition at line 1605 of file network.cpp.
References make_sockaddr_bynum().
Referenced by get_hostname_bystr().


| int recv_wait | ( | int | sock, | 
| int | tm ) | 
int recv_wait(int sock, int tm)
簡易 受信 wait. ソケットにデータが受信されるまで待つ.スレッド対応
| sock | 監視するソケット | 
| tm | タイムアウトの秒数 | 
| TRUE | バッファにデータがある. | 
| FALSE | タイムアウトした. | 
Definition at line 1443 of file network.cpp.
Referenced by recv_http_closed(), tcp_recv_wait(), udp_recv_wait(), udp_recv_wait_sockaddr_in(), and www2browser_relay().

| int recv_wait_twin | ( | int | sock1, | 
| int | sock2, | ||
| int | tm ) | 
int recv_wait_twin(int sock1, int sock2, int tm)
簡易 受信 wait. 二つのソケット sock1, sock2 にデータが受信されるまで待つ.スレッド対応
| sock1 | 監視するソケット その1 | 
| sock2 | 監視するソケット その2 | 
| tm | タイムアウトの秒数 | 
| 0 | タイムアウトした. | 
| 1 | sock1 のバッファにデータがある. | 
| 2 | sock2 のバッファにデータがある. | 
| 3 | sock1 と sock2 のバッファにデータがある. | 
Definition at line 1480 of file network.cpp.
References Max.
| int send_wait | ( | int | sock, | 
| int | tm ) | 
int send_wait(int sock, int tm)
簡易 送信 wait. データが送信可能になるまで待つ.スレッド対応
| sock | 監視するソケット | 
| tm | タイムアウトの秒数 | 
| TRUE | バッファにデータがある. | 
| FALSE | タイムアウトした. | 
Definition at line 1518 of file network.cpp.
| int set_block_socket | ( | int | sock | ) | 
int set_block_socket(int sock)
Definition at line 1060 of file network.cpp.
| int set_nonblock_socket | ( | int | sock | ) | 
int set_nonblock_socket(int sock)
Definition at line 1043 of file network.cpp.
Referenced by _tcp_server_bind(), _tcp_server_bind_setopt(), _tcp_server_socket(), _tcp_server_socket_setopt(), _udp_server_socket(), and _udp_server_socket_setopt().

| int socket_close | ( | int | sofd | ) | 
未送信のデータを破棄して,ソケットを完全に閉じる.
| sofd | クローズしたいソケット記述子を指定. | 
| 1以上 | 最後に受信したバイト数 | 
| 0 | 正常切断. | 
| -1 | エラー | 
Definition at line 1022 of file network.cpp.
Referenced by _get_localip_bydest(), _tcp_bind(), _tcp_bind_setopt(), _tcp_client_bind_socket(), _tcp_client_socket(), _tcp_connect(), _tcp_server_bind(), _tcp_server_bind_setopt(), _tcp_server_socket(), _tcp_server_socket_setopt(), _udp_bind(), _udp_bind_setopt(), _udp_server_socket(), _udp_server_socket_setopt(), simple_web_proxy(), and udp_client_socket_sockaddr_in().

| int tcp_recv | ( | int | sock, | 
| char * | rmsg, | ||
| int | size ) | 
int tcp_recv(int sock, char* rmsg, int size)
recv()をラッピングした関数.TCP経由でデータを受信する.
| sock | ソケット記述子 | 
| rmsg | 受信用データバッファ.関数内で初期化される. | 
| size | データバッファのサイズ | 
| 1以上 | 受信したバイト数. | 
| 0 | 正常切断. | 
| JBXL_NET_RECV_ERROR | 失敗 | 
Definition at line 1226 of file network.cpp.
References JBXL_NET_RECV_ERROR.
| int tcp_recv_mstream | ( | int | sock, | 
| char * | mesg, | ||
| int | sz, | ||
| mstream * | sb, | ||
| int | tm ) | 
int tcp_recv_mstream(int sock, char* mesg, int sz, mstream* sb, int tm)
TCP経由でメッセージ(文字列)を受信する.受信メッセージはメッセージストリームバッファに一旦バッファリングされ, この関数により一行ずつ読み出される.mesgには最大 sz-1文字が格納される. もし,バッファ中の一行のデータが sz-1より大きい場合は,はみ出した部分は捨てられる.
mesgに格納される時,行中の改行コードは削除され,行末には必ず '\0' が入る. タイムアウトの設定が可能でタイムアウトに 0を指定した場合, 呼び出した時点で 読み込み可能データがなければすぐにタイムアウトとなる (JBXL_NET_RECV_TIMEOUT が返る).
メッセージストリームのバッファ部が確保されていない場合は,最初に呼び出された時点で確保される. 一旦この関数を使用して,受信データをバッファリングしたら,ソケットをクローズするまで, 読み取りには必ず同じストリームを使用してこの関数を呼び出さばければならない. そうで無い場合は受信データの整合性は保証されない.
| sock | ソケット記述子 | 
| mesg | 受信用データバッファ.予め十分なメモリ領域を確保しておく. | 
| sz | データバッファのサイズ | 
| sb | リングバッファ型のストリームバッファ. バッファ部が確保されていなければ,自動的に確保される. | 
| tm | タイムアウト時間.秒単位. | 
| 1以上 | mesgに格納したメッセージのバイト数. | 
| 0 | おそらくは相手側がセッションをクローズした. | 
| JBXL_NET_RECV_ERROR | 受信エラー. | 
| JBXL_ARGS_ERROR | 引数に NULLのデータがある. | 
| JBXL_MALLOC_ERROR | メッセージバッファ部が無いので確保しようとしたが,確保に失敗した. | 
| JBXL_NET_BUF_ERROR | メッセージバッファにデータは存在するはずだが,原因不明の理由により獲得に失敗した. | 
| JBXL_NET_BUFSZ_ERROR | メッセージバッファ中のデータの長さが,mesgの長さより大きい.はみ出した部分は捨てられた. | 
| JBXL_NET_RECV_TIMEOUT | タイムアウト. | 
Definition at line 1395 of file network.cpp.
References get_mstream(), JBXL_ARGS_ERROR, JBXL_MALLOC_ERROR, JBXL_NET_BUF_ERROR, JBXL_NET_BUFSZ_ERROR, JBXL_NET_RECV_ERROR, make_mstream, put_mstream(), RECVBUFSZ, and tcp_recv_wait().

| int tcp_recv_wait | ( | int | sock, | 
| char * | mesg, | ||
| int | sz, | ||
| int | tm ) | 
int tcp_recv_wait(int sock, char* mesg, int sz, int tm)
TCP経由でデータを受信する.
タイムアウトの設定が可能.タイムアウトに 0を指定した場合, recv_wait() 関数を呼び出した時点で読み込み可能データがなければすぐにタイムアウトとなる (JBXL_NET_RECV_TIMEOUT が返る).
| sock | ソケット記述子 | 
| mesg | 受信用データバッファ.関数内で初期化される. | 
| sz | データバッファのサイズ | 
| tm | タイムアウト時間.秒単位. | 
| 1以上 | 受信したバイト数. | 
| 0 | おそらくは相手側がセッションをクローズした. | 
| JBXL_NET_RECV_ERROR | 受信エラー. | 
| JBXL_NET_RECV_TIMEOUT | タイムアウト. | 
Definition at line 1317 of file network.cpp.
References JBXL_NET_RECV_ERROR, JBXL_NET_RECV_TIMEOUT, and recv_wait().
Referenced by tcp_recv_Buffer_wait(), and tcp_recv_mstream().


| int tcp_send | ( | int | sock, | 
| char * | smsg, | ||
| int | size ) | 
int tcp_send(int sock, char* smsg, int size)
send()をラッピングした関数.TCP経由でデータを送る.
データ(smsg)のサイズ sizeに0以下を指定した場合は,smsgは文字列であると見なして,サイズを自動的に計算する.
| sock | ソケット記述子 | 
| smsg | 送信するデータ | 
| size | 送信するデータ(smsg)のサイズ.サイズが 0以下の場合は smsgは文字列であるとみなす. | 
| 0以上 | 送信したバイト数. | 
| JBXL_NET_SEND_ERROR | 失敗 | 
Definition at line 1252 of file network.cpp.
References JBXL_NET_SEND_ERROR.
Referenced by send_http_passwd_req(), send_http_res_file(), and simple_web_proxy().

| int tcp_send_mesgln | ( | int | sock, | 
| char * | mesg ) | 
int tcp_send_mesgln(int sock, char* mesg)
TCPメッセージ(文字列)に改行(\r\n)を付け加えて送信する.
| sock | ソケット記述子 | 
| mesg | 送信用メッセージ | 
| 0以上 | 送信したバイト数. | 
| JBXL_NET_SEND_ERROR | 失敗. | 
Definition at line 1345 of file network.cpp.
References JBXL_NET_SEND_ERROR.
| char * to_address_char | ( | unsigned char * | addr, | 
| int | mask, | ||
| int | family ) | 
char* to_address_char(unsigned char* addr, int mask, int family)
数字型の IPv4/IPv6 アドレス(サブネット付き)8/32Byteを文字型の [IPアドレス]/[ネットマスク] に変換する.
addr は必ずネットマスクの情報を含み,長さが 8/32Byteでないといけない.
to_address_num()と対で使うのが安全.
| addr | 変換するバイバリ型のIPアドレス | 
| mask | 0: サブネットマスクの処理をしない. | 
| mask | 0以外: サブネットマスクの処理を行う. | 
| family | アドレスファミリー (AF_INET/AF_INET6) | 
Definition at line 2496 of file network.cpp.
References LEN_IPADDR, and LEN_IPADDR6.
| unsigned char * to_address_num | ( | char * | addr, | 
| int | mode, | ||
| int | mask, | ||
| int | family ) | 
unsigned char* to_address_num(char* addr, int mode, int mask, int family)
文字型のアドレス [IPアドレス]/[ネットマスク] (例:202.26.159.140/255.255.255.0)を 数字型のアドレス(unsigned char* num)8/32Byte へ変換する.
省略された場所は 0とみなされる(例:202.26/255 → 202.26.0.0/255.0.0.0) 
ネットマスク部全体が省略された場合は IPアドレス部に依存する.(202.26. → 202.26.0.0/255.255.0.0) 
CIDER形式にも対応.ただし,ネットマスク部の妥当性はチェックしない.
| addr | 変換する文字型のIPアドレス または FQDN | 
| mode | 0: IPアドレス以外のもの(英字)は NULL を返す. | 
| mode | 0以外: FQDNはIPアドレスに変換して返す(時間がかかる) | 
| mask | 0: サブネットマスクの処理をしない. | 
| mask | 0以外: サブネットマスクの処理を行う. | 
| family | アドレスファミリー (AF_INET/AF_INET6) | 
Definition at line 2373 of file network.cpp.
References awk(), get_ipaddr_byname_num(), Max, Min, OFF, and ON.
Referenced by is_same_network().


| int udp_client_socket_sockaddr_in | ( | char * | hostname, | 
| int | port, | ||
| struct sockaddr_in * | sv_addr ) | 
Definition at line 2553 of file network.cpp.
References JBXL_NET_INFO_ERROR, JBXL_NET_SOCKET_ERROR, and socket_close().

| void udp_hole_punching | ( | int | sock, | 
| struct addrinfo * | addr, | ||
| int | nm ) | 
void udp_hole_punching(int sock, struct sockaddr_in addr, int nm)
sock を使って,addrへ nmバイトの NULLデータを送信する.
| sock | ソケット記述子 | 
| addr | 相手のホストの情報が格納されて sockaddr_in 構造体 | 
| nm | 送信するデータ(NULL)の長さ | 
Definition at line 2534 of file network.cpp.
References LBUF, and udp_send().

| void udp_hole_punching_sockaddr_in | ( | int | sock, | 
| struct sockaddr_in | addr, | ||
| int | nm ) | 
void udp_hole_punching_sockaddr_in(int sock, struct sockaddr_in addr, int nm)
sock を使って,addrへ nmバイトの NULLデータを送信する.
| sock | ソケット記述子 | 
| addr | 相手のホストの情報が格納されて sockaddr_in 構造体 | 
| nm | 送信するデータ(NULL)の長さ | 
Definition at line 2741 of file network.cpp.
References LBUF, and udp_send_sockaddr_in().

| int udp_recv | ( | int | sock, | 
| char * | rmsg, | ||
| int | size, | ||
| struct addrinfo * | sv_addr ) | 
int udp_recv(int sock, char* rmsg, int size, struct addrinfo* sv_addr)
recvform() をラッピングした関数.UDPデータを受信する.
| sock | ソケット記述子 | 
| rmsg | 受信用データバッファ.関数内で初期化される. | 
| size | データバッファのサイズ | 
| sv_addr | サーバの情報が格納された addrinfo 構造体へのポインタ. | 
| 1以上 | 受信したバイト数. | 
| 0 | 正常切断. | 
| JBXL_NET_RECV_ERROR | 失敗 | 
| JBXL_ARGS_ERROR | 不正な引数 | 
Definition at line 1166 of file network.cpp.
References JBXL_ARGS_ERROR, JBXL_NET_RECV_ERROR, and socklen_t.
Referenced by udp_recv_wait().

| int udp_recv_sockaddr_in | ( | int | sock, | 
| char * | rmsg, | ||
| int | size, | ||
| struct sockaddr_in * | sv_addr ) | 
Definition at line 2578 of file network.cpp.
References socklen_t.
Referenced by udp_recv_wait_sockaddr_in().

| int udp_recv_wait | ( | int | sock, | 
| char * | rmsg, | ||
| int | size, | ||
| struct addrinfo * | sv_addr, | ||
| int | tm ) | 
int udp_recv_wait(int sock, char* rmsg, int size, struct addrinfo* sv_addr, int tm)
UDP経由でデータを受信する.
タイムアウトの設定が可能.タイムアウトに 0を指定した場合, recv_wait() 関数を呼び出した時点で読み込み可能データがなければすぐにタイムアウトとなる (JBXL_NET_RECV_TIMEOUT が返る).
| sock | ソケット記述子 | 
| rmsg | 受信用データバッファ.関数内で初期化される. | 
| size | データバッファのサイズ | 
| sv_addr | サーバの情報が格納された addrinfo 構造体へのポインタ. | 
| tm | タイムアウト時間.秒単位. | 
| 1以上 | 受信したバイト数. | 
| 0 | 正常切断. | 
| JBXL_NET_RECV_ERROR | 失敗. | 
| JBXL_NET_RECV_TIMEOUT | タイムアウト. | 
Definition at line 1283 of file network.cpp.
References JBXL_NET_RECV_ERROR, JBXL_NET_RECV_TIMEOUT, recv_wait(), and udp_recv().
Referenced by udp_recv_Buffer_wait().


| int udp_recv_wait_sockaddr_in | ( | int | sock, | 
| char * | data, | ||
| int | size, | ||
| struct sockaddr_in * | sv_addr, | ||
| int | tm ) | 
Definition at line 2605 of file network.cpp.
References JBXL_NET_RECV_TIMEOUT, recv_wait(), and udp_recv_sockaddr_in().
Referenced by udp_recv_Buffer_wait_sockaddr_in().


| int udp_send | ( | int | sock, | 
| char * | smsg, | ||
| int | size, | ||
| struct addrinfo * | sv_addr ) | 
int udp_send(int sock, char* smsg, int size, struct addrinfo* sv_addr)
sendto() をラッピングした関数.UDP経由でデータを送る.
データ(smsg)のサイズ sizeに0以下を指定した場合は,smsgは文字列で あると見なしてサイズを自動的に計算する.
| sock | ソケット記述子 | 
| smsg | 送信するデータ | 
| size | 送信するデータ(smsg)のサイズ.サイズが 0以下の場合は smsgは文字列であるとみなす. | 
| sv_addr | サーバの情報を格納する addrinfo 構造体へのポインタ. | 
| 0以上 | 送信したバイト数. | 
| JBXL_NET_SEND_ERROR | 失敗 | 
| JBXL_ARGS_ERROR | 不正な引数 | 
Definition at line 1199 of file network.cpp.
References JBXL_ARGS_ERROR, and JBXL_NET_SEND_ERROR.
Referenced by udp_hole_punching().

| int udp_send_sockaddr_in | ( | int | sock, | 
| char * | smsg, | ||
| int | size, | ||
| struct sockaddr_in * | sv_addr ) | 
Definition at line 2593 of file network.cpp.
Referenced by udp_hole_punching_sockaddr_in().

      
  | 
  extern | 
Definition at line 22 of file network.cpp.
Referenced by init_network().