public static AcceptSocket Bind(UnixDomainSocketEndPoint unixDomainSocketEndPoint, ChannelWriter <ConnectionContext> acceptQueue, IoUringOptions options) { var socketPath = unixDomainSocketEndPoint.ToString(); var s = new LinuxSocket(AF_UNIX, SOCK_STREAM, 0, blocking: false); File.Delete(socketPath); s.Bind(unixDomainSocketEndPoint); s.Listen(options.ListenBacklog); return(new AcceptSocket(s, unixDomainSocketEndPoint, acceptQueue, null, options, null)); }
public static AcceptSocket Bind(IPEndPoint ipEndPoint, ChannelWriter <ConnectionContext> acceptQueue, MemoryPool <byte> memoryPool, IoUringOptions options, TransportThreadScheduler scheduler) { var domain = ipEndPoint.AddressFamily == AddressFamily.InterNetwork ? AF_INET : AF_INET6; LinuxSocket s = new LinuxSocket(domain, SOCK_STREAM, IPPROTO_TCP, blocking: false); s.SetOption(SOL_SOCKET, SO_REUSEADDR, 1); s.SetOption(SOL_SOCKET, SO_REUSEPORT, 1); s.Bind(ipEndPoint); s.Listen(options.ListenBacklog); return(new AcceptSocket(s, s.GetLocalAddress(), acceptQueue, memoryPool, options, scheduler)); }