U:RDoc::NormalClass[iI"Socket:ET@I"BasicSocket;To:RDoc::Markup::Document:@parts[ o;;[ :
@fileI"ext/socket/ancdata.c;T:0@omit_headings_from_table_of_contents_below0o;;[ ; I"ext/socket/lib/socket.rb;T;
0o;;[4o:RDoc::Markup::Paragraph;[I"GClass +Socket+ provides access to the underlying operating system ;TI"Nsocket implementations. It can be used to provide more operating system ;TI"Fspecific functionality than the protocol-specific socket classes.;To:RDoc::Markup::BlankLine o;;[ I"JThe constants defined under Socket::Constants are also defined under ;TI"@Socket. For example, Socket::AF_INET is usable as well as ;TI"HSocket::Constants::AF_INET. See Socket::Constants for the list of ;TI"constants.;T@S:RDoc::Markup::Heading:
leveli: textI"What's a socket?;T@o;;[ I"ESockets are endpoints of a bidirectional communication channel. ;TI"MSockets can communicate within a process, between processes on the same ;TI"Mmachine or between different machines. There are many types of socket: ;TI"4TCPSocket, UDPSocket or UNIXSocket for example.;T@o;;[I"'Sockets have their own vocabulary:;T@o;;[I"*domain:* ;TI"The family of protocols:;To:RDoc::Markup::List:
@type:BULLET:@items[ o:RDoc::Markup::ListItem:@label0;[o;;[I"Socket::PF_INET;To;;0;[o;;[I"Socket::PF_INET6;To;;0;[o;;[I"Socket::PF_UNIX;To;;0;[o;;[I" etc.;T@o;;[I"
*type:* ;TI"DThe type of communications between the two endpoints, typically;To;;;;[o;;0;[o;;[I"Socket::SOCK_STREAM;To;;0;[o;;[I"Socket::SOCK_DGRAM.;T@o;;[I"*protocol:* ;TI"Typically _zero_. ;TI":This may be used to identify a variant of a protocol.;T@o;;[I"*hostname:* ;TI"+The identifier of a network interface:;To;;;;[o;;0;[o;;[I"=a string (hostname, IPv4 or IPv6 address or +broadcast+ ;TI")which specifies a broadcast address);To;;0;[o;;[I"4a zero-length string which specifies INADDR_ANY;To;;0;[o;;[I"Can integer (interpreted as binary address in host byte order).;T@S;
;i;I"Quick start;T@o;;[I"FMany of the classes, such as TCPSocket, UDPSocket or UNIXSocket, ;TI"Uease the use of sockets comparatively to the equivalent C programming interface.;T@o;;[I"PLet's create an internet socket using the IPv4 protocol in a C-like manner:;T@o:RDoc::Markup::Verbatim;[ I"require 'socket'
;TI"
;TI"9s = Socket.new Socket::AF_INET, Socket::SOCK_STREAM
;TI":s.connect Socket.pack_sockaddr_in(80, 'example.com')
;T:@format0o;;[I",You could also use the TCPSocket class:;T@o;;[I")s = TCPSocket.new 'example.com', 80
;T;0o;;[I"*A simple server might look like this:;T@o;;[I"require 'socket'
;TI"
;TI"=server = TCPServer.new 2000 # Server bound to port 2000
;TI"
;TI"
loop do
;TI"@ client = server.accept # Wait for a client to connect
;TI" client.puts "Hello !"
;TI") client.puts "Time is #{Time.now}"
;TI" client.close
;TI" end
;T;0o;;[I"(A simple client may look like this:;T@o;;[I"require 'socket'
;TI"
;TI")s = TCPSocket.new 'localhost', 2000
;TI"
;TI"2while line = s.gets # Read lines from socket
;TI"* puts line # and print them
;TI" end
;TI"
;TI"2s.close # close socket when done
;T;0S;
;i;I"Exception Handling;T@o;;[I"GRuby's Socket implementation raises exceptions based on the error ;TI"Hgenerated by the system dependent implementation. This is why the ;TI"Dmethods are documented in a way that isolate Unix-based system ;TI"Hexceptions from Windows based exceptions. If more information on a ;TI"Nparticular exception is needed, please refer to the Unix manual pages or ;TI"#the Windows WinSock reference.;T@S;
;i;I"Convenience methods;T@o;;[I">Although the general way to create socket is Socket.new, ;TI"Athere are several methods of socket creation for most cases.;T@o;;: NOTE;[ o;;[I"TCP client socket;T;[o;;[I"Socket.tcp, TCPSocket.open;To;;[I"TCP server socket;T;[o;;[I"+Socket.tcp_server_loop, TCPServer.open;To;;[I"UNIX client socket;T;[o;;[I"!Socket.unix, UNIXSocket.open;To;;[I"UNIX server socket;T;[o;;[I"-Socket.unix_server_loop, UNIXServer.open;T@S;
;i;I"Documentation by;T@o;;;;[o;;0;[o;;[I"Zach Dennis;To;;0;[o;;[I"Sam Roberts;To;;0;[o;;[I"<Programming Ruby from The Pragmatic Bookshelf.;T@o;;[I"GMuch material in this documentation is taken with permission from ;TI"<Programming Ruby from The Pragmatic Bookshelf.;T; I"ext/socket/socket.c;T;
0o;;[ ; I"lib/ipaddr.rb;T;
0; 0;
0[ [°U:RDoc::Constant[i I"SOCK_STREAM;TI"Socket::SOCK_STREAM;T00o;;[o;;[I"XA stream socket provides a sequenced, reliable two-way connection for a byte stream;T@; I"ext/socket/constdefs.c;T;
0@ð@cRDoc::NormalClass0U;[i I"SOCK_DGRAM;TI"Socket::SOCK_DGRAM;T00o;;[o;;[I"DA datagram socket provides connectionless, unreliable messaging;T@; @ð;
0@ð@@ñ0U;[i I"
SOCK_RAW;TI"Socket::SOCK_RAW;T00o;;[o;;[I"_A raw socket provides low-level access for direct access or implementing network protocols;T@; @ð;
0@ð@@ñ0U;[i I"
SOCK_RDM;TI"Socket::SOCK_RDM;T00o;;[o;;[I"FA reliable datagram socket provides reliable delivery of messages;T@; @ð;
0@ð@@ñ0U;[i I"SOCK_SEQPACKET;TI"Socket::SOCK_SEQPACKET;T00o;;[o;;[I"]A sequential packet socket provides sequenced, reliable two-way connection for datagrams;T@; @ð;
0@ð@@ñ0U;[i I"SOCK_PACKET;TI"Socket::SOCK_PACKET;T00o;;[o;;[I"Device-level packet access;T@; @ð;
0@ð@@ñ0U;[i I"AF_UNSPEC;TI"Socket::AF_UNSPEC;T00o;;[o;;[I"7Unspecified protocol, any supported address family;T@; @ð;
0@ð@@ñ0U;[i I"PF_UNSPEC;TI"Socket::PF_UNSPEC;T00o;;[o;;[I"7Unspecified protocol, any supported address family;T@; @ð;
0@ð@@ñ0U;[i I"AF_INET;TI"Socket::AF_INET;T00o;;[o;;[I"IPv4 protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_INET;TI"Socket::PF_INET;T00o;;[o;;[I"IPv4 protocol;T@; @ð;
0@ð@@ñ0U;[i I"
AF_INET6;TI"Socket::AF_INET6;T00o;;[o;;[I"IPv6 protocol;T@; @ð;
0@ð@@ñ0U;[i I"
PF_INET6;TI"Socket::PF_INET6;T00o;;[o;;[I"IPv6 protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_UNIX;TI"Socket::AF_UNIX;T00o;;[o;;[I"UNIX sockets;T@; @ð;
0@ð@@ñ0U;[i I"PF_UNIX;TI"Socket::PF_UNIX;T00o;;[o;;[I"UNIX sockets;T@; @ð;
0@ð@@ñ0U;[i I"AF_AX25;TI"Socket::AF_AX25;T00o;;[o;;[I"AX.25 protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_AX25;TI"Socket::PF_AX25;T00o;;[o;;[I"AX.25 protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_IPX;TI"Socket::AF_IPX;T00o;;[o;;[I"IPX protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_IPX;TI"Socket::PF_IPX;T00o;;[o;;[I"IPX protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_APPLETALK;TI"Socket::AF_APPLETALK;T00o;;[o;;[I"AppleTalk protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_APPLETALK;TI"Socket::PF_APPLETALK;T00o;;[o;;[I"AppleTalk protocol;T@; @ð;
0@ð@@ñ0U;[i I"
AF_LOCAL;TI"Socket::AF_LOCAL;T00o;;[o;;[I"Host-internal protocols;T@; @ð;
0@ð@@ñ0U;[i I"
PF_LOCAL;TI"Socket::PF_LOCAL;T00o;;[o;;[I"Host-internal protocols;T@; @ð;
0@ð@@ñ0U;[i I"AF_IMPLINK;TI"Socket::AF_IMPLINK;T00o;;[o;;[I"ARPANET IMP protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_IMPLINK;TI"Socket::PF_IMPLINK;T00o;;[o;;[I"ARPANET IMP protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_PUP;TI"Socket::AF_PUP;T00o;;[o;;[I"#PARC Universal Packet protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_PUP;TI"Socket::PF_PUP;T00o;;[o;;[I"#PARC Universal Packet protocol;T@; @ð;
0@ð@@ñ0U;[i I"
AF_CHAOS;TI"Socket::AF_CHAOS;T00o;;[o;;[I"MIT CHAOS protocols;T@; @ð;
0@ð@@ñ0U;[i I"
PF_CHAOS;TI"Socket::PF_CHAOS;T00o;;[o;;[I"MIT CHAOS protocols;T@; @ð;
0@ð@@ñ0U;[i I"
AF_NS;TI"Socket::AF_NS;T00o;;[o;;[I"XEROX NS protocols;T@; @ð;
0@ð@@ñ0U;[i I"
PF_NS;TI"Socket::PF_NS;T00o;;[o;;[I"XEROX NS protocols;T@; @ð;
0@ð@@ñ0U;[i I"AF_ISO;TI"Socket::AF_ISO;T00o;;[o;;[I"/ISO Open Systems Interconnection protocols;T@; @ð;
0@ð@@ñ0U;[i I"PF_ISO;TI"Socket::PF_ISO;T00o;;[o;;[I"/ISO Open Systems Interconnection protocols;T@; @ð;
0@ð@@ñ0U;[i I"AF_OSI;TI"Socket::AF_OSI;T00o;;[o;;[I"/ISO Open Systems Interconnection protocols;T@; @ð;
0@ð@@ñ0U;[i I"PF_OSI;TI"Socket::PF_OSI;T00o;;[o;;[I"/ISO Open Systems Interconnection protocols;T@; @ð;
0@ð@@ñ0U;[i I"AF_ECMA;TI"Socket::AF_ECMA;T00o;;[o;;[I".European Computer Manufacturers protocols;T@; @ð;
0@ð@@ñ0U;[i I"PF_ECMA;TI"Socket::PF_ECMA;T00o;;[o;;[I".European Computer Manufacturers protocols;T@; @ð;
0@ð@@ñ0U;[i I"AF_DATAKIT;TI"Socket::AF_DATAKIT;T00o;;[o;;[I"Datakit protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_DATAKIT;TI"Socket::PF_DATAKIT;T00o;;[o;;[I"Datakit protocol;T@; @ð;
0@ð@@ñ0U;[i I"
AF_CCITT;TI"Socket::AF_CCITT;T00o;;[o;;[I" CCITT (now ITU-T) protocols;T@; @ð;
0@ð@@ñ0U;[i I"
PF_CCITT;TI"Socket::PF_CCITT;T00o;;[o;;[I" CCITT (now ITU-T) protocols;T@; @ð;
0@ð@@ñ0U;[i I"AF_SNA;TI"Socket::AF_SNA;T00o;;[o;;[I"IBM SNA protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_SNA;TI"Socket::PF_SNA;T00o;;[o;;[I"IBM SNA protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_DEC;TI"Socket::AF_DEC;T00o;;[o;;[I"DECnet protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_DEC;TI"Socket::PF_DEC;T00o;;[o;;[I"DECnet protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_DLI;TI"Socket::AF_DLI;T00o;;[o;;[I",DEC Direct Data Link Interface protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_DLI;TI"Socket::PF_DLI;T00o;;[o;;[I",DEC Direct Data Link Interface protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_LAT;TI"Socket::AF_LAT;T00o;;[o;;[I""Local Area Transport protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_LAT;TI"Socket::PF_LAT;T00o;;[o;;[I""Local Area Transport protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_HYLINK;TI"Socket::AF_HYLINK;T00o;;[o;;[I"NSC Hyperchannel protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_HYLINK;TI"Socket::PF_HYLINK;T00o;;[o;;[I"NSC Hyperchannel protocol;T@; @ð;
0@ð@@ñ0U;[i I"
AF_ROUTE;TI"Socket::AF_ROUTE;T00o;;[o;;[I"Internal routing protocol;T@; @ð;
0@ð@@ñ0U;[i I"
PF_ROUTE;TI"Socket::PF_ROUTE;T00o;;[o;;[I"Internal routing protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_LINK;TI"Socket::AF_LINK;T00o;;[o;;[I"Link layer interface;T@; @ð;
0@ð@@ñ0U;[i I"PF_LINK;TI"Socket::PF_LINK;T00o;;[o;;[I"Link layer interface;T@; @ð;
0@ð@@ñ0U;[i I"AF_COIP;TI"Socket::AF_COIP;T00o;;[o;;[I"Connection-oriented IP;T@; @ð;
0@ð@@ñ0U;[i I"PF_COIP;TI"Socket::PF_COIP;T00o;;[o;;[I"Connection-oriented IP;T@; @ð;
0@ð@@ñ0U;[i I"AF_CNT;TI"Socket::AF_CNT;T00o;;[o;;[I" Computer Network Technology;T@; @ð;
0@ð@@ñ0U;[i I"PF_CNT;TI"Socket::PF_CNT;T00o;;[o;;[I" Computer Network Technology;T@; @ð;
0@ð@@ñ0U;[i I"AF_SIP;TI"Socket::AF_SIP;T00o;;[o;;[I"Simple Internet Protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_SIP;TI"Socket::PF_SIP;T00o;;[o;;[I"Simple Internet Protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_NDRV;TI"Socket::AF_NDRV;T00o;;[o;;[I"Network driver raw access;T@; @ð;
0@ð@@ñ0U;[i I"PF_NDRV;TI"Socket::PF_NDRV;T00o;;[o;;[I"Network driver raw access;T@; @ð;
0@ð@@ñ0U;[i I"AF_ISDN;TI"Socket::AF_ISDN;T00o;;[o;;[I"(Integrated Services Digital Network;T@; @ð;
0@ð@@ñ0U;[i I"PF_ISDN;TI"Socket::PF_ISDN;T00o;;[o;;[I"(Integrated Services Digital Network;T@; @ð;
0@ð@@ñ0U;[i I"AF_NATM;TI"Socket::AF_NATM;T00o;;[o;;[I"Native ATM access;T@; @ð;
0@ð@@ñ0U;[i I"PF_NATM;TI"Socket::PF_NATM;T00o;;[o;;[I"Native ATM access;T@; @ð;
0@ð@@ñ0U;[i I"AF_SYSTEM;TI"Socket::AF_SYSTEM;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"PF_SYSTEM;TI"Socket::PF_SYSTEM;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"AF_NETBIOS;TI"Socket::AF_NETBIOS;T00o;;[o;;[I"NetBIOS;T@; @ð;
0@ð@@ñ0U;[i I"PF_NETBIOS;TI"Socket::PF_NETBIOS;T00o;;[o;;[I"NetBIOS;T@; @ð;
0@ð@@ñ0U;[i I"AF_PPP;TI"Socket::AF_PPP;T00o;;[o;;[I"Point-to-Point Protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_PPP;TI"Socket::PF_PPP;T00o;;[o;;[I"Point-to-Point Protocol;T@; @ð;
0@ð@@ñ0U;[i I"AF_ATM;TI"Socket::AF_ATM;T00o;;[o;;[I"Asynchronous Transfer Mode;T@; @ð;
0@ð@@ñ0U;[i I"PF_ATM;TI"Socket::PF_ATM;T00o;;[o;;[I"Asynchronous Transfer Mode;T@; @ð;
0@ð@@ñ0U;[i I"AF_NETGRAPH;TI"Socket::AF_NETGRAPH;T00o;;[o;;[I"Netgraph sockets;T@; @ð;
0@ð@@ñ0U;[i I"PF_NETGRAPH;TI"Socket::PF_NETGRAPH;T00o;;[o;;[I"Netgraph sockets;T@; @ð;
0@ð@@ñ0U;[i I"AF_MAX;TI"Socket::AF_MAX;T00o;;[o;;[I"-Maximum address family for this platform;T@; @ð;
0@ð@@ñ0U;[i I"PF_MAX;TI"Socket::PF_MAX;T00o;;[o;;[I"-Maximum address family for this platform;T@; @ð;
0@ð@@ñ0U;[i I"AF_PACKET;TI"Socket::AF_PACKET;T00o;;[o;;[I"Direct link-layer access;T@; @ð;
0@ð@@ñ0U;[i I"PF_PACKET;TI"Socket::PF_PACKET;T00o;;[o;;[I"Direct link-layer access;T@; @ð;
0@ð@@ñ0U;[i I"AF_E164;TI"Socket::AF_E164;T00o;;[o;;[I"'CCITT (ITU-T) E.164 recommendation;T@; @ð;
0@ð@@ñ0U;[i I"PF_XTP;TI"Socket::PF_XTP;T00o;;[o;;[I"eXpress Transfer Protocol;T@; @ð;
0@ð@@ñ0U;[i I"PF_RTIP;TI"Socket::PF_RTIP;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"PF_PIP;TI"Socket::PF_PIP;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"PF_KEY;TI"Socket::PF_KEY;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"MSG_OOB;TI"Socket::MSG_OOB;T00o;;[o;;[I"Process out-of-band data;T@; @ð;
0@ð@@ñ0U;[i I"
MSG_PEEK;TI"Socket::MSG_PEEK;T00o;;[o;;[I"Peek at incoming message;T@; @ð;
0@ð@@ñ0U;[i I"MSG_DONTROUTE;TI"Socket::MSG_DONTROUTE;T00o;;[o;;[I"*Send without using the routing tables;T@; @ð;
0@ð@@ñ0U;[i I"MSG_EOR;TI"Socket::MSG_EOR;T00o;;[o;;[I"Data completes record;T@; @ð;
0@ð@@ñ0U;[i I"MSG_TRUNC;TI"Socket::MSG_TRUNC;T00o;;[o;;[I"#Data discarded before delivery;T@; @ð;
0@ð@@ñ0U;[i I"MSG_CTRUNC;TI"Socket::MSG_CTRUNC;T00o;;[o;;[I"&Control data lost before delivery;T@; @ð;
0@ð@@ñ0U;[i I"MSG_WAITALL;TI"Socket::MSG_WAITALL;T00o;;[o;;[I"#Wait for full request or error;T@; @ð;
0@ð@@ñ0U;[i I"MSG_DONTWAIT;TI"Socket::MSG_DONTWAIT;T00o;;[o;;[I"(This message should be non-blocking;T@; @ð;
0@ð@@ñ0U;[i I"MSG_EOF;TI"Socket::MSG_EOF;T00o;;[o;;[I"Data completes connection;T@; @ð;
0@ð@@ñ0U;[i I"MSG_FLUSH;TI"Socket::MSG_FLUSH;T00o;;[o;;[I"0Start of a hold sequence. Dumps to so_temp;T@; @ð;
0@ð@@ñ0U;[i I"
MSG_HOLD;TI"Socket::MSG_HOLD;T00o;;[o;;[I"Hold fragment in so_temp;T@; @ð;
0@ð@@ñ0U;[i I"
MSG_SEND;TI"Socket::MSG_SEND;T00o;;[o;;[I"Send the packet in so_temp;T@; @ð;
0@ð@@ñ0U;[i I"MSG_HAVEMORE;TI"Socket::MSG_HAVEMORE;T00o;;[o;;[I"Data ready to be read;T@; @ð;
0@ð@@ñ0U;[i I"MSG_RCVMORE;TI"Socket::MSG_RCVMORE;T00o;;[o;;[I"'Data remains in the current packet;T@; @ð;
0@ð@@ñ0U;[i I"MSG_COMPAT;TI"Socket::MSG_COMPAT;T00o;;[o;;[I"End of record;T@; @ð;
0@ð@@ñ0U;[i I"MSG_PROXY;TI"Socket::MSG_PROXY;T00o;;[o;;[I"Wait for full request;T@; @ð;
0@ð@@ñ0U;[i I"MSG_FIN;TI"Socket::MSG_FIN;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"MSG_SYN;TI"Socket::MSG_SYN;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"MSG_CONFIRM;TI"Socket::MSG_CONFIRM;T00o;;[o;;[I"Confirm path validity;T@; @ð;
0@ð@@ñ0U;[i I"MSG_RST;TI"Socket::MSG_RST;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"MSG_ERRQUEUE;TI"Socket::MSG_ERRQUEUE;T00o;;[o;;[I"#Fetch message from error queue;T@; @ð;
0@ð@@ñ0U;[i I"MSG_NOSIGNAL;TI"Socket::MSG_NOSIGNAL;T00o;;[o;;[I"Do not generate SIGPIPE;T@; @ð;
0@ð@@ñ0U;[i I"
MSG_MORE;TI"Socket::MSG_MORE;T00o;;[o;;[I"Sender will send more;T@; @ð;
0@ð@@ñ0U;[i I"MSG_FASTOPEN;TI"Socket::MSG_FASTOPEN;T00o;;[o;;[I")Reduce step of the handshake process;T@; @ð;
0@ð@@ñ0U;[i I"SOL_SOCKET;TI"Socket::SOL_SOCKET;T00o;;[o;;[I"Socket-level options;T@; @ð;
0@ð@@ñ0U;[i I"SOL_IP;TI"Socket::SOL_IP;T00o;;[o;;[I"IP socket options;T@; @ð;
0@ð@@ñ0U;[i I"SOL_IPX;TI"Socket::SOL_IPX;T00o;;[o;;[I"IPX socket options;T@; @ð;
0@ð@@ñ0U;[i I"
SOL_AX25;TI"Socket::SOL_AX25;T00o;;[o;;[I"AX.25 socket options;T@; @ð;
0@ð@@ñ0U;[i I"SOL_ATALK;TI"Socket::SOL_ATALK;T00o;;[o;;[I"AppleTalk socket options;T@; @ð;
0@ð@@ñ0U;[i I"SOL_TCP;TI"Socket::SOL_TCP;T00o;;[o;;[I"TCP socket options;T@; @ð;
0@ð@@ñ0U;[i I"SOL_UDP;TI"Socket::SOL_UDP;T00o;;[o;;[I"UDP socket options;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_IP;TI"Socket::IPPROTO_IP;T00o;;[o;;[I"Dummy protocol for IP;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_ICMP;TI"Socket::IPPROTO_ICMP;T00o;;[o;;[I"Control message protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_IGMP;TI"Socket::IPPROTO_IGMP;T00o;;[o;;[I"Group Management Protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_GGP;TI"Socket::IPPROTO_GGP;T00o;;[o;;[I" Gateway to Gateway Protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_TCP;TI"Socket::IPPROTO_TCP;T00o;;[o;;[I"TCP;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_EGP;TI"Socket::IPPROTO_EGP;T00o;;[o;;[I"Exterior Gateway Protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_PUP;TI"Socket::IPPROTO_PUP;T00o;;[o;;[I"#PARC Universal Packet protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_UDP;TI"Socket::IPPROTO_UDP;T00o;;[o;;[I"UDP;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_IDP;TI"Socket::IPPROTO_IDP;T00o;;[o;;[I"XNS IDP;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_HELLO;TI"Socket::IPPROTO_HELLO;T00o;;[o;;[I""hello" routing protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_ND;TI"Socket::IPPROTO_ND;T00o;;[o;;[I"Sun net disk protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_TP;TI"Socket::IPPROTO_TP;T00o;;[o;;[I"#ISO transport protocol class 4;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_XTP;TI"Socket::IPPROTO_XTP;T00o;;[o;;[I"Xpress Transport Protocol;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_EON;TI"Socket::IPPROTO_EON;T00o;;[o;;[I"
ISO cnlp;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_BIP;TI"Socket::IPPROTO_BIP;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"IPPROTO_AH;TI"Socket::IPPROTO_AH;T00o;;[o;;[I"IP6 auth header;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_DSTOPTS;TI"Socket::IPPROTO_DSTOPTS;T00o;;[o;;[I"IP6 destination option;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_ESP;TI"Socket::IPPROTO_ESP;T00o;;[o;;[I"&IP6 Encapsulated Security Payload;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_FRAGMENT;TI"Socket::IPPROTO_FRAGMENT;T00o;;[o;;[I"IP6 fragmentation header;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_HOPOPTS;TI"Socket::IPPROTO_HOPOPTS;T00o;;[o;;[I"IP6 hop-by-hop options;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_ICMPV6;TI"Socket::IPPROTO_ICMPV6;T00o;;[o;;[I"
ICMP6;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_IPV6;TI"Socket::IPPROTO_IPV6;T00o;;[o;;[I"IP6 header;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_NONE;TI"Socket::IPPROTO_NONE;T00o;;[o;;[I"IP6 no next header;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_ROUTING;TI"Socket::IPPROTO_ROUTING;T00o;;[o;;[I"IP6 routing header;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_RAW;TI"Socket::IPPROTO_RAW;T00o;;[o;;[I"Raw IP packet;T@; @ð;
0@ð@@ñ0U;[i I"IPPROTO_MAX;TI"Socket::IPPROTO_MAX;T00o;;[o;;[I"Maximum IPPROTO constant;T@; @ð;
0@ð@@ñ0U;[i I"IPPORT_RESERVED;TI"Socket::IPPORT_RESERVED;T00o;;[o;;[I"0Default minimum address for bind or connect;T@; @ð;
0@ð@@ñ0U;[i I"IPPORT_USERRESERVED;TI" Socket::IPPORT_USERRESERVED;T00o;;[o;;[I"0Default maximum address for bind or connect;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_ANY;TI"Socket::INADDR_ANY;T00o;;[o;;[I"lA socket bound to INADDR_ANY receives packets from all interfaces and sends from the default IP address;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_BROADCAST;TI"Socket::INADDR_BROADCAST;T00o;;[o;;[I""The network broadcast address;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_LOOPBACK;TI"Socket::INADDR_LOOPBACK;T00o;;[o;;[I"The loopback address;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_UNSPEC_GROUP;TI" Socket::INADDR_UNSPEC_GROUP;T00o;;[o;;[I"!The reserved multicast group;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_ALLHOSTS_GROUP;TI""Socket::INADDR_ALLHOSTS_GROUP;T00o;;[o;;[I"3Multicast group for all systems on this subset;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_MAX_LOCAL_GROUP;TI"#Socket::INADDR_MAX_LOCAL_GROUP;T00o;;[o;;[I"+The last local network multicast group;T@; @ð;
0@ð@@ñ0U;[i I"INADDR_NONE;TI"Socket::INADDR_NONE;T00o;;[o;;[I"/A bitmask for matching no valid IP address;T@; @ð;
0@ð@@ñ0U;[i I"IP_OPTIONS;TI"Socket::IP_OPTIONS;T00o;;[o;;[I")IP options to be included in packets;T@; @ð;
0@ð@@ñ0U;[i I"IP_HDRINCL;TI"Socket::IP_HDRINCL;T00o;;[o;;[I"!Header is included with data;T@; @ð;
0@ð@@ñ0U;[i I"IP_TOS;TI"Socket::IP_TOS;T00o;;[o;;[I"IP type-of-service;T@; @ð;
0@ð@@ñ0U;[i I"IP_TTL;TI"Socket::IP_TTL;T00o;;[o;;[I"IP time-to-live;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVOPTS;TI"Socket::IP_RECVOPTS;T00o;;[o;;[I")Receive all IP options with datagram;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVRETOPTS;TI"Socket::IP_RECVRETOPTS;T00o;;[o;;[I"(Receive all IP options for response;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVDSTADDR;TI"Socket::IP_RECVDSTADDR;T00o;;[o;;[I"1Receive IP destination address with datagram;T@; @ð;
0@ð@@ñ0U;[i I"IP_RETOPTS;TI"Socket::IP_RETOPTS;T00o;;[o;;[I"+IP options to be included in datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_MINTTL;TI"Socket::IP_MINTTL;T00o;;[o;;[I"-Minimum TTL allowed for received packets;T@; @ð;
0@ð@@ñ0U;[i I"IP_DONTFRAG;TI"Socket::IP_DONTFRAG;T00o;;[o;;[I"Don't fragment packets;T@; @ð;
0@ð@@ñ0U;[i I"IP_SENDSRCADDR;TI"Socket::IP_SENDSRCADDR;T00o;;[o;;[I".Source address for outgoing UDP datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_ONESBCAST;TI"Socket::IP_ONESBCAST;T00o;;[o;;[I"PForce outgoing broadcast datagrams to have the undirected broadcast address;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVTTL;TI"Socket::IP_RECVTTL;T00o;;[o;;[I""Receive IP TTL with datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVIF;TI"Socket::IP_RECVIF;T00o;;[o;;[I"1Receive interface information with datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVSLLA;TI"Socket::IP_RECVSLLA;T00o;;[o;;[I".Receive link-layer address with datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_PORTRANGE;TI"Socket::IP_PORTRANGE;T00o;;[o;;[I"ASet the port range for sockets with unspecified port numbers;T@; @ð;
0@ð@@ñ0U;[i I"IP_MULTICAST_IF;TI"Socket::IP_MULTICAST_IF;T00o;;[o;;[I"IP multicast interface;T@; @ð;
0@ð@@ñ0U;[i I"IP_MULTICAST_TTL;TI"Socket::IP_MULTICAST_TTL;T00o;;[o;;[I"IP multicast TTL;T@; @ð;
0@ð@@ñ0U;[i I"IP_MULTICAST_LOOP;TI"Socket::IP_MULTICAST_LOOP;T00o;;[o;;[I"IP multicast loopback;T@; @ð;
0@ð@@ñ0U;[i I"IP_ADD_MEMBERSHIP;TI"Socket::IP_ADD_MEMBERSHIP;T00o;;[o;;[I"%Add a multicast group membership;T@; @ð;
0@ð@@ñ0U;[i I"IP_DROP_MEMBERSHIP;TI"Socket::IP_DROP_MEMBERSHIP;T00o;;[o;;[I"&Drop a multicast group membership;T@; @ð;
0@ð@@ñ0U;[i I"IP_DEFAULT_MULTICAST_TTL;TI"%Socket::IP_DEFAULT_MULTICAST_TTL;T00o;;[o;;[I"Default multicast TTL;T@; @ð;
0@ð@@ñ0U;[i I"IP_DEFAULT_MULTICAST_LOOP;TI"&Socket::IP_DEFAULT_MULTICAST_LOOP;T00o;;[o;;[I"Default multicast loopback;T@; @ð;
0@ð@@ñ0U;[i I"IP_MAX_MEMBERSHIPS;TI"Socket::IP_MAX_MEMBERSHIPS;T00o;;[o;;[I"6Maximum number multicast groups a socket can join;T@; @ð;
0@ð@@ñ0U;[i I"IP_ROUTER_ALERT;TI"Socket::IP_ROUTER_ALERT;T00o;;[o;;[I"PNotify transit routers to more closely examine the contents of an IP packet;T@; @ð;
0@ð@@ñ0U;[i I"IP_PKTINFO;TI"Socket::IP_PKTINFO;T00o;;[o;;[I".Receive packet information with datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_PKTOPTIONS;TI"Socket::IP_PKTOPTIONS;T00o;;[o;;[I"*Receive packet options with datagrams;T@; @ð;
0@ð@@ñ0U;[i I"IP_MTU_DISCOVER;TI"Socket::IP_MTU_DISCOVER;T00o;;[o;;[I"Path MTU discovery;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVERR;TI"Socket::IP_RECVERR;T00o;;[o;;[I"3Enable extended reliable error message passing;T@; @ð;
0@ð@@ñ0U;[i I"IP_RECVTOS;TI"Socket::IP_RECVTOS;T00o;;[o;;[I"&Receive TOS with incoming packets;T@; @ð;
0@ð@@ñ0U;[i I"IP_MTU;TI"Socket::IP_MTU;T00o;;[o;;[I"0The Maximum Transmission Unit of the socket;T@; @ð;
0@ð@@ñ0U;[i I"IP_FREEBIND;TI"Socket::IP_FREEBIND;T00o;;[o;;[I".Allow binding to nonexistent IP addresses;T@; @ð;
0@ð@@ñ0U;[i I"IP_IPSEC_POLICY;TI"Socket::IP_IPSEC_POLICY;T00o;;[o;;[I"IPsec security policy;T@; @ð;
0@ð@@ñ0U;[i I"IP_XFRM_POLICY;TI"Socket::IP_XFRM_POLICY;T00o;;[ ; @ð;
0@ð@@ñ0U;[i I"IP_PASSSEC;TI"Socket::IP_PASSSEC;T00o;;[o;;[I",Retrieve security context with datagram;T@; @ð;
0@ð@@ñ0U;[i I"IP_TRANSPARENT;TI"Socket::IP_TRANSPARENT;T00o;;[o;;[I"Transparent proxy;T@; @ð;
0@ð@@ñ0U;[i I"IP_PMTUDISC_DONT;TI"Socket::IP_PMTUDISC_DONT;T00o;;[o;;[I"Never send DF frames;T@; @ð;
0@ð@@ñ0U;[i I"IP_PMTUDISC_WANT;TI"Socket::IP_PMTUDISC_WANT;T00o;;[o;;[I"Use per-route hints;T@; @ð;
0@ð@@ñ0U;[i I"IP_PMTUDISC_DO;TI"Socket::IP_PMTUDISC_DO;T00o;;[o;;[I"Always send DF frames;T@; @ð;
0@ð@@ñ0U;[i I"IP_UNBLOCK_SOURCE;TI"Socket::IP_UNBLOCK_SOURCE;T00o;;[o;;[I">Unblock IPv4 multicast packets with a give source address;T@; @ð;
0@ð@@ñ0U;[i I"IP_BLOCK_SOURCE;TI"Socket::IP_BLOCK_SOURCE;T00o;;[o;;[I"