View source code
Display the source code in std/socket.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Class std.socket.Socket

Class that creates a network communication endpoint using the Berkeley sockets interface.

class Socket ;

Constructors

NameDescription
this (af, type, protocol) Create a blocking socket. If a single protocol type exists to support this socket type within the address family, the ProtocolType may be omitted.
this (info) Create a blocking socket using the parameters from the specified AddressInfo structure.
this (sock, af) Use an existing socket handle.

Properties

NameTypeDescription
addressFamily[get] AddressFamilyGet the socket's address family.
blocking[get, set] boolGet/set socket's blocking flag.
handle[get] std.socket.socket_tGet underlying socket handle.
hostName[get] string
isAlive[get] boolProperty that indicates if this is a valid, alive socket.
localAddress[get] AddressLocal endpoint Address.
release[get] std.socket.socket_tReleases the underlying socket handle from the Socket object. Once it is released, you cannot use the Socket object's methods anymore. This also means the Socket destructor will no longer close the socket - it becomes your responsibility.
remoteAddress[get] AddressRemote endpoint Address.

Methods

NameDescription
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.
bind (addr) Associate a local address with this socket.
close () Immediately drop any connections and release socket resources. The Socket object is no longer usable after close. Calling shutdown before close is recommended for connection-oriented sockets.
connect (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.
getErrorText () Get a text description of this socket's error status, and clear the socket's error status.
getOption (level, option, result) Get a socket option.
getOption (level, option, result) Common case of getting integer and boolean options.
getOption (level, option, result) Get the linger option.
getOption (level, option, result) Get a timeout (duration) option.
listen (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 accepted.
receive (buf, flags) Receive data on the connection. If the socket is blocking, receive waits until there is data to be received.
receiveFrom (buf, flags, from) Receive data and get the remote endpoint Address. If the socket is blocking, receiveFrom waits until there is data to be received.
select (checkRead, checkWrite, checkError, timeout) Wait for a socket to change status. A wait timeout of Duration or TimeVal, 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.
send (buf, flags) Send data on the connection. If the socket is blocking and there is no buffer space left, send waits.
sendTo (buf, flags, to) 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.
setKeepAlive (time, interval) Enables TCP keep-alive with the specified parameters.
setOption (level, option, value) Set a socket option.
setOption (level, option, value) Common case for setting integer and boolean options.
setOption (level, option, value) Set the linger option.
setOption (level, option, value) Sets a timeout (duration) option, i.e. SocketOption.SNDTIMEO or RCVTIMEO. Zero indicates no timeout.
shutdown (how) Disables sends and/or receives.
factory (classname) Create instance of class specified by the fully qualified name classname. The class must either have no constructors or have a default constructor.
opCmp (o) Compare with another Object obj.
opEquals (o) Test whether this is equal to o. The default implementation only compares by identity (using the is operator). Generally, overrides and overloads for opEquals should attempt to compare objects by their contents. A class will most likely want to add an overload that takes your specific type as the argument and does the content comparison. Then you can override this and forward it to your specific typed overload with a cast. Remember to check for null on the typed overload.
toHash () Compute hash function for Object.
toString () Convert Object to a human readable string.
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.
createAddress () Can be overridden to support other addresses.

Authors

Christopher E. Miller, David Nadlinger, Vladimir Panteleev

License

Boost License 1.0.