D
Language
Phobos
Comparisons
object
std
std.base64
std.boxer
std.compiler
std.conv
std.ctype
std.date
std.file
std.format
std.gc
std.intrinsic
std.math
std.md5
std.mmfile
std.openrj
std.outbuffer
std.path
std.process
std.random
std.recls
std.regexp
std.socket
std.socketstream
std.stdint
std.stdio
std.cstream
std.stream
std.string
std.system
std.thread
std.uri
std.utf
std.zip
std.zlib
std.windows
std.linux
std.c
std.c.stdio
std.c.windows
std.c.linux
|
std.socket
- enum AddressFamily
- The communication domain used to resolve an address:
- UNIX
- local communication
- INET
- internet protocol version 4
- INET6
- internet protocol version 6
- IPX
- novell IPX
- APPLETALK
- appletalk
- enum SocketType
- Communication semantics:
- STREAM
- sequenced, reliable, two-way communication-based byte streams
- DGRAM
- connectionless, unreliable datagrams with a fixed maximum length;
data may be lost or arrive out of order
- RAW
- raw protocol access
- RDM
- reliably-delivered message datagrams
- SEQPACKET
- sequenced, reliable, two-way connection-based datagrams with a fixed
maximum length
- enum ProtocolType
- Protocol:
- IP
- internet protocol version 4
- IPV6
- internet protocol version 6
- ICMP
- internet control message protocol
- IGMP
- internet group management protocol
- GGP
- gateway to gateway protocol
- TCP
- transmission control protocol
- PUP
- PARC universal packet protocol
- UDP
- user datagram protocol
- IDP
- Xerox NS protocol
- class Protocol
- Protocol is a class for retrieving protocol information.
- ProtocolType type
char[] name
char[][] aliases
- These members are populated when one of the following
functions are called without failure:
- bit getProtocolByName(char[] name)
bit getProtocolByType(ProtocolType type)
- Returns false on failure.
- class Service
- Service is a class for retrieving service information.
- char[] name
char[][] aliases
ushort port
char[] protocolName
- These members are populated when one of the following
functions are called without failure:
- bit getServiceByName(char[] name, char[] protocolName)
bit getServiceByName(char[] name)
bit getServiceByPort(ushort port, char[] protocolName)
bit getServiceByPort(ushort port)
- If a protocol name is omitted, any protocol will be matched.
Returns false on failure.
- class AddressException : Exception
- Base exception thrown from an Address.
- abstract class Address
- Address is an abstract class for representing a network addresses.
- AddressFamily addressFamily()
- Family of this address.
- char[] toString()
- Human readable string representing this address.
- class InternetAddress : Address
- InternetAddress is a class that represents an IPv4 (internet protocol
version 4) address and port.
- const uint ADDR_ANY
- Any IPv4 address number.
- const uint ADDR_NONE
- An invalid IPv4 address number.
- const ushort PORT_ANY
- Any IPv4 port number.
- this(uint addr, ushort port)
this(ushort port)
- Construct a new Address. addr may be ADDR_ANY (default) and port
may be PORT_ANY, and the actual numbers may not be known
until a connection is made.
- this(char[] addr, ushort port)
- addr may be an IPv4 address string in the dotted-decimal form
a.b.c.d, or a host name that will be resolved using an
InternetHost object. port may be PORT_ANY as stated above.
- AddressFamily addressFamily()
- Overridden to return AddressFamily.INET.
- ushort port()
- Returns the IPv4 port number.
- uint addr()
- Returns the IPv4 address number.
- char[] toAddrString()
- Human readable string representing the IPv4 address in
dotted-decimal form.
- char[] toPortString()
- Human readable string representing the IPv4 port.
- char[] toString()
- Human readable string representing the IPv4 address and port
in the form a.b.c.d:e.
- static uint parse(char[] addr)
- Parse an IPv4 address string in the dotted-decimal form
a.b.c.d and return the number. If the string is not
a legitimate IPv4 address, ADDR_NONE is returned.
- class HostException : Exception
- Base exception thrown from an InternetHost.
- int errorCode
- Platform-specific error code.
- class InternetHost
- InternetHost is a class for resolving IPv4 addresses.
- char[] name
char[][] aliases
uint[] addrList
- These members are populated when one of the following
functions are called without failure:
- bit getHostByName(char[] name)
- Resolve host name. Returns false if unable to resolve.
- bit getHostByAddr(uint addr)
- Resolve IPv4 address number. Returns false if unable to resolve.
- bit getHostByAddr(char[] addr)
- Same as previous, but addr is an IPv4 address string in the
dotted-decimal form a.b.c.d. Returns false if unable to resolve.
- enum SocketShutdown
- How a socket is shutdown:
- RECEIVE
- socket receives are disallowed
- SEND
- socket sends are disallowed
- BOTH
- both RECEIVE and SEND
- enum SocketFlags
- Flags may be OR'ed together:
- NONE
- no flags specified
- OOB
- out-of-band stream data
- PEEK
- peek at incoming data without removing it from the queue
- DONTROUTE
- data should not be subject to routing;
this flag may be ignored.
- enum SocketOptionLevel
- The level at which a socket option is defined:
- SOCKET
- socket level
- IP
- internet protocol version 4 level
- IPV6
- internet protocol version 6 level
- TCP
- transmission control protocol level
- UDP
- user datagram protocol level
- enum SocketOption
- Specifies a socket option:
- DEBUG
- record debugging information
- BROADCAST
- allow transmission of broadcast messages
- REUSEADDR
- allow local reuse of address
- LINGER
- linger on close if unsent data is present
- OOBINLINE
- receive out-of-band data in band
- SNDBUF
- send buffer size
- RCVBUF
- receive buffer size
- KEEPALIVE
- keep connection alive
- DONTROUTE
- do not route
- TCP_NODELAY
- disable the Nagle algorithm for send coalescing
- struct linger
- Linger information for use with SocketOption.LINGER.
- on
- Nonzero for on.
- time
- Linger time.
- struct timeval
- Duration timeout value.
- seconds
- Number of seconds.
- microseconds
- Number of additional microseconds.
- class SocketException : Exception
- Base exception thrown from a Socket.
- int errorCode
- Platform-specific error code.
- class Socket
- Socket is a class that creates a network communication endpoint
using the Berkeley sockets interface.
- this(AddressFamily af, SocketType type, ProtocolType protocol)
this(AddressFamily af, SocketType type, char[] protocolName)
this(AddressFamily af, SocketType type)
- Create a blocking socket. If a single protocol type exists to support this socket type
within the address family, the ProtocolType may be omitted.
- static char[] hostName
- Property to get the local machine's host name.
- bit blocking
- Property to get or set whether the socket is blocking or nonblocking.
- bit isAlive
- Property that indicates if this is a valid, alive socket.
- AddressFamily addressFamily()
- Get the socket's address family.
- void bind(Address addr)
- Associate a local address with this socket.
- void connect(Address to)
- Establish a connection. If the socket is blocking, connect waits for
the connection to be made. If the socket is nonblocking, connect returns
immediately and the connection attempt is still in progress.
- void listen(int backlog)
- Listen for an incoming connection. bind must be called before you
can listen. The backlog is a request of how many pending incoming
connections are queued until accept'ed.
- Socket accept()
- Accept an incoming connection. If the socket is blocking, accept
waits for a connection request. Throws SocketAcceptException if
unable to accept. See accepting for use with derived classes.
- protected Socket accepting()
- Called by accept when a new Socket must be created for a new connection.
To use a derived class, override this method and return an instance of your class.
The returned Socket's handle must not be set; Socket has a protected constructor
this() to use in this situation.
- void shutdown(SocketShutdown how)
- Disables sends and/or receives.
- void close()
- Immediately drop any connections and release socket resources.
Calling shutdown before close is recommended for
connection-oriented sockets. The Socket object is no longer
usable after close.
- static char[] hostName
- Property to get the local machine's host name.
- Address remoteAddress()
- Remote endpoint Address.
- Address localAddress()
- Local endpoint Address.
- const int ERROR
- Send or receive error code.
- int send(void[] buf, SocketFlags flags)
int send(void[] buf)
- Send data on the connection. Returns the number of bytes actually
sent, or ERROR on failure. If the socket is blocking and
there is no buffer space left, send waits.
- int sendTo(void[] buf, SocketFlags flags, Address to)
int sendTo(void[] buf, Address to)
int sendTo(void[] buf, SocketFlags flags)
int sendTo(void[] buf)
- Send data to a specific destination Address.
If the destination address is not specified, a connection must have
been made and that address is used. If the socket is blocking and
there is no buffer space left, sendTo waits.
- int receive(void[] buf, SocketFlags flags)
int receive(void[] buf)
- Receive data on the connection. Returns the number of bytes actually
received, 0 if the remote side has closed the connection, or ERROR
on failure. If the socket is blocking, receive waits until there
is data to be received.
- int receiveFrom(void[] buf, SocketFlags flags, out Address from)
int receiveFrom(void[] buf, out Address from)
int receiveFrom(void[] buf, SocketFlags flags)
int receiveFrom(void[] buf)
- Receive data and get the remote endpoint Address. Returns the number
of bytes actually received, 0 if the remote side has closed the connection,
or ERROR on failure. If the socket is blocking, receiveFrom
waits until there is data to be received.
- int getOption(SocketOptionLevel level, SocketOption option, void[] result)
- Get a socket option. Returns the number of bytes written to result.
- int getOption(SocketOptionLevel level, SocketOption option, out int result)
- Common case of getting integer and boolean options.
- int getOption(SocketOptionLevel level, SocketOption option, out linger result)
- Get the linger option.
- void setOption(SocketOptionLevel level, SocketOption option, void[] value)
- Set a socket option.
- void setOption(SocketOptionLevel level, SocketOption option, int value)
- Common case of setting integer and boolean options.
- void setOption(SocketOptionLevel level, SocketOption option, linger value)
- Set the linger option.
- static int select(SocketSet checkRead, SocketSet checkWrite, SocketSet checkError, timeval* tv)
static int select(SocketSet checkRead, SocketSet checkWrite, SocketSet checkError, int microseconds)
static int select(SocketSet checkRead, SocketSet checkWrite, SocketSet checkError)
- Wait for a socket to change status. A wait timeout timeval or
int microseconds may be specified; if a timeout is not specified or the
timeval is null, the maximum timeout is used. The timeval timeout
has an unspecified value when select returns. Returns the number
of sockets with status changes, 0 on timeout, or -1 on interruption.
If the return value is greater than 0, the SocketSets are updated
to only contain the sockets having status changes.
For a connecting socket, a write status change means the connection
is established and it's able to send. For a listening socket,
a read status change means there is an incoming connection request and
it's able to accept.
- class TcpSocket : Socket
- TcpSocket is a shortcut class for a TCP Socket.
- this()
this(AddressFamily family)
- Constructs a blocking TCP Socket.
- this(InternetAddress connectTo)
- Constructs a blocking TCP Socket and connects to an InternetAddress.
- class UdpSocket : Socket
- UdpSocket is a shortcut class for a UDP Socket.
- this()
this(AddressFamily family)
- Constructs a blocking UDP Socket.
- class SocketSet
- A collection of sockets for use with Socket.select.
- this(uint max)
- Set the maximum amount of sockets that may be added.
- this()
- Uses the default maximum for the system.
- uint max
- Property to get the maximum amount of sockets that may be added
to this SocketSet.
- void add(Socket s)
- Add a Socket to the collection.
Adding more than the maximum has dangerous side affects.
- void remove(Socket s)
- Remove this Socket from the collection.
- int isSet(Socket s)
- Returns nonzero if this Socket is in the collection.
- void reset()
- Reset the SocketSet so that there are 0 Sockets
in the collection.
Notes
For Win32 systems, link with ws2_32.lib.
Example
See /dmd/samples/d/listener.d.
written by Christopher E. Miller
|