pynetdicom.transport.AssociationSocket

class pynetdicom.transport.AssociationSocket(assoc, client_socket=None, address=('', 0))[source]

A wrapper for a socket object.

New in version 1.2.

Provides an interface for socket that is integrated nicely with an Association instance and the state machine.

select_timeout

The timeout (in seconds) that select.select() calls in ready() will block for (default 0.5). A value of 0 specifies a poll and never blocks. A value of None blocks until a connection is ready.

Type

float or None

socket

The wrapped socket, will be None if close() is called.

Type

socket.socket or None

tls_args

If the socket should be wrapped by TLS then this is (context, hostname), where context is a ssl.SSLContext that will be used to wrap the socket and hostname is the value to use for the server_hostname keyword argument for SSLContext.wrap_socket(). If TLS is not to be used then None (default).

Type

2-tuple or None

__init__(assoc, client_socket=None, address=('', 0))[source]

Create a new AssociationSocket.

Parameters
  • assoc (association.Association) – The Association instance that will be using the socket to communicate.

  • client_socket (socket.socket, optional) – The socket to wrap, if not supplied then a new socket will be created instead.

  • address (2-tuple, optional) – If client_socket is None then this is the (host, port) to bind the newly created socket to, which by default will be ('', 0).

Methods

__init__(assoc[, client_socket, address])

Create a new AssociationSocket.

close()

Close the connection to the peer and shutdown the socket.

connect(address)

Try and connect to a remote at address.

get_local_addr([host])

Return an address for the local computer as str.

recv(nr_bytes)

Read nr_bytes from the socket.

send(bytestream)

Try and send the data in bytestream to the remote.

Attributes

assoc

Return the parent Association instance.

event_queue

Return the Association’s event queue.

ready

Return True if there is data available to be read.

tls_args

Return the TLS context and hostname (if set) or None.

property assoc

Return the parent Association instance.

close()[source]

Close the connection to the peer and shutdown the socket.

Sets AssociationSocket.socket to None once complete.

Events Emitted

  • Evt17: Transport connection closed

connect(address)[source]

Try and connect to a remote at address.

Events Emitted

  • Evt2: Transport connection confirmed

  • Evt17: Transport connection closed

Parameters

address (2-tuple) – The (host, port) IPv4 address to connect to.

property event_queue

Return the Association’s event queue.

get_local_addr(host=('10.255.255.255', 1))[source]

Return an address for the local computer as str.

Parameters

host (tuple) – The host’s (addr, port) when trying to determine the local address.

property ready

Return True if there is data available to be read.

Events Emitted

  • None

  • Evt17: Transport connection closed

Returns

True if the socket has data ready to be read, False otherwise.

Return type

bool

recv(nr_bytes)[source]

Read nr_bytes from the socket.

Events Emitted

  • None

Parameters

nr_bytes (int) – The number of bytes to attempt to read from the socket.

Returns

The data read from the socket.

Return type

bytearray

send(bytestream)[source]

Try and send the data in bytestream to the remote.

Events Emitted

  • None

  • Evt17: Transport connected closed.

Parameters

bytestream (bytes) – The data to send to the remote.

property tls_args

Return the TLS context and hostname (if set) or None.