15 lines
472 B
Nim
Raw Normal View History

2024-12-18 14:53:06 +01:00
import ../basics
import ./address
type NetworkServer* = distinct StreamServer
proc open*(_: type NetworkServer): Future[?!NetworkServer] {.async:(raises:[]).} =
NetworkServer(createStreamServer(Port(0))).catch()
proc address*(server: NetworkServer): ?!NetworkAddress =
NetworkAddress(StreamServer(server).localAddress()).catch()
proc close*(server: NetworkServer) {.async:(raises:[]).} =
StreamServer(server).close()
await noCancel StreamServer(server).join()