Socket

A wrapper around the Berkeley API to implement the IConduit abstraction and add stream-specific functionality.

Constructors

this
this()

Create a streaming Internet socket

this
this(Address addr)

Create an Internet Socket with the provided characteristics

this
this(AddressFamily family, SocketType type, ProtocolType protocol)

Create an Internet socket

Members

Aliases

socket
alias socket = native
Undocumented in source.

Functions

asyncCopy
Socket asyncCopy(Handle file)
bind
Socket bind(Address address)

Bind this socket. This is typically used to configure a listening socket (such as a server or multicast socket). The address given should describe a local adapter, or specify the port alone (ADDR_ANY) to have the OS assign a local adapter address.

connect
Socket connect(const(char)[] address, uint port)

Connect to the provided endpoint

connect
Socket connect(Address addr)

Connect to the provided endpoint

copy
OutputStream copy(InputStream src, size_t max)

Transfer the content of another conduit to this one. Returns the dst OutputStream, or throws IOException on failure.

detach
void detach()

Release this Socket

error
void error()

Throw an IOException noting the last error

hadTimeout
deprecated bool hadTimeout()
Undocumented in source. Be warned that the author may not have intended to support it.
read
size_t read(void[] dst)

Read content from the socket. Note that the operation may timeout if method setTimeout() has been invoked with a non-zero value.

setTimeout
deprecated void setTimeout(double t)

see super.timeout(int)

shutdown
Socket shutdown()

Inform other end of a connected socket that we're no longer available. In general, this should be invoked before close()

toString
string toString()

Return the name of this device

wait
bool wait(bool reading)

Manage socket IO under a timeout

write
size_t write(const(void)[] src)

Properties

bufferSize
size_t bufferSize [@property getter]

Return a preferred size for buffering conduit I/O

fileHandle
Handle fileHandle [@property getter]

Models a handle-oriented device.

native
Berkeley* native [@property getter]

Return the socket wrapper

Inherited Members

From Conduit

scheduler
Fiber.Scheduler scheduler;
Undocumented in source.
~this
~this()

Clean up when collected. See method detach().

toString
string toString()

Return the name of this conduit.

bufferSize
size_t bufferSize()

Return a preferred size for buffering conduit I/O.

read
size_t read(void[] dst)

Read from conduit into a target array. The provided dst will be populated with content from the conduit.

write
size_t write(const(void)[] src)

Write to conduit from a source array. The provided src content will be written to the conduit.

detach
void detach()

Disconnect this conduit. Note that this may be invoked both explicitly by the user, and implicitly by the GC. Be sure to manage multiple detachment requests correctly: set a flag, or sentinel value as necessary.

timeout
uint timeout [@property setter]

Set the active timeout period for IO calls (in milliseconds.)

timeout
uint timeout [@property getter]

Get the active timeout period for IO calls (in milliseconds.)

isAlive
bool isAlive [@property getter]

Is the conduit alive? Default behaviour returns true.

conduit
IConduit conduit [@property getter]

Return the host. This is part of the Stream interface.

flush
IOStream flush()

Emit buffered output or reset buffered input.

close
void close()

Close this conduit.

error
void error(const(char[]) msg)

Throw an IOException, with the provided message.

input
InputStream input [@property getter]

Return the input stream.

output
OutputStream output [@property getter]

Return the output stream.

put
Conduit put(void[] src)

Emit fixed-length content from 'src' into this conduit, throwing an IOException upon Eof.

get
Conduit get(void[] dst)

Consume fixed-length content into 'dst' from this conduit, throwing an IOException upon Eof.

rewind
Conduit rewind()

Rewind to beginning of file.

copy
OutputStream copy(InputStream src, size_t max)

Transfer the content of another conduit to this one. Returns the dst OutputStream, or throws IOException on failure.

seek
long seek(long offset, Anchor anchor)

Seek on this stream. Source conduits that don't support seeking will throw an IOException.

text
char[] text(size_t max)

Load text from a stream, and return them all in an array.

load
void[] load(size_t max)

Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume the input.

load
void[] load(InputStream src, size_t max)

Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume input.

put
void put(void[] src, OutputStream output)

Emit fixed-length content from 'src' into 'output', throwing an IOException upon Eof.

get
void get(void[] dst, InputStream input)

Consume fixed-length content into 'dst' from 'input', throwing an IOException upon Eof.

transfer
size_t transfer(InputStream src, OutputStream dst, size_t max)

Low-level data transfer, where max represents the maximum number of bytes to transfer.

Meta