sealed trait Network[F[_]] extends NetworkPlatform[F] with SocketGroup[F] with DatagramSocketGroup[F]
Provides the ability to work with TCP, UDP, and TLS.
- Source
- Network.scala
import fs2.Stream import fs2.io.net.{Datagram, Network} def send[F[_]: Network](datagram: Datagram): F[Unit] = Network[F].openDatagramSocket().use { socket => socket.write(packet) }
In this example, the
F[_]parameter tosendrequires theNetworkconstraint instead of requiring the much more powerfulAsyncconstraint. TheNetworkinstance has a set of global resources used for managing sockets. Alternatively, use thesocketGroupanddatagramSocketGroupoperations to manage the lifecycle of underlying resources. An instance ofNetworkis available for any effectFwhich has anAsync[F]instance.
- Alphabetic
- By Inheritance
- Network
- DatagramSocketGroup
- SocketGroup
- NetworkPlatform
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def client(to: SocketAddress[Host], options: List[SocketOption] = List.empty): Resource[F, Socket[F]]
Opens a TCP connection to the specified server.
Opens a TCP connection to the specified server.
The connection is closed when the resource is released.
- to
address of remote server
- options
socket options to apply to the underlying socket
- Definition Classes
- SocketGroup
- abstract def datagramSocketGroup(threadFactory: ThreadFactory = ThreadFactories.named("fs2-udp", true)): Resource[F, DatagramSocketGroup[F]]
Provides an isolated
DatagramSocketGroup[F]with the specified thread configuration.Provides an isolated
DatagramSocketGroup[F]with the specified thread configuration. The resulting socket group is shutdown during resource finalization, resulting in closure of any sockets that were created.Note:
Networkis aDatagramSocketGroupso only use this operation if you need explicit control over the lifecycle of the socket group.- threadFactory
factory used to create selector thread
- Definition Classes
- NetworkPlatform
- abstract def openDatagramSocket(address: Option[Host] = None, port: Option[Port] = None, options: List[DatagramSocketOption] = Nil, protocolFamily: Option[DatagramSocketGroup.ProtocolFamily] = None): Resource[F, DatagramSocket[F]]
Creates a UDP socket bound to the specified address.
Creates a UDP socket bound to the specified address.
- address
address to bind to; defaults to all interfaces
- port
port to bind to; defaults to an ephemeral port
- options
socket options to apply to the underlying socket
- protocolFamily
protocol family to use when opening the supporting
DatagramChannel
- Definition Classes
- DatagramSocketGroup
- abstract def server(address: Option[Host] = None, port: Option[Port] = None, options: List[SocketOption] = List.empty): Stream[F, Socket[F]]
Creates a TCP server bound to specified address/port and returns a stream of client sockets -- one per client that connects to the bound address/port.
Creates a TCP server bound to specified address/port and returns a stream of client sockets -- one per client that connects to the bound address/port.
When the stream terminates, all open connections will terminate as well. Because of this, make sure to handle errors in the client socket Streams.
- address
address to accept connections from; none for all interfaces
- port
port to bind
- options
socket options to apply to the underlying socket
- Definition Classes
- SocketGroup
- abstract def serverResource(address: Option[Host] = None, port: Option[Port] = None, options: List[SocketOption] = List.empty): Resource[F, (SocketAddress[IpAddress], Stream[F, Socket[F]])]
Like server but provides the
SocketAddressof the bound server socket before providing accepted sockets.Like server but provides the
SocketAddressof the bound server socket before providing accepted sockets.Make sure to handle errors in the client socket Streams.
- Definition Classes
- SocketGroup
- abstract def socketGroup(threadCount: Int = 1, threadFactory: ThreadFactory = ThreadFactories.named("fs2-tcp", true)): Resource[F, SocketGroup[F]]
Provides an isolated
SocketGroup[F]with the specified thread pool configuration.Provides an isolated
SocketGroup[F]with the specified thread pool configuration. The resulting socket group is shutdown during resource finalization, resulting in closure of any sockets that were created.Note:
Networkis aSocketGroupso only use this operation if you need explicit control over the lifecycle of the socket group.- threadCount
number of threads to allocate in the fixed thread pool backing the NIO channel group
- threadFactory
factory used to create fixed threads
- Definition Classes
- NetworkPlatform
- abstract def tlsContext: Builder[F]
Returns a builder for
TLSContext[F]values.Returns a builder for
TLSContext[F]values.For example,
Network[IO].tlsContext.systemreturns aF[TLSContext[F]].
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])