besterd/source/listeners/types.d

56 lines
1.2 KiB
D

module listeners.types;
import listeners.listener;
import server.server;
import std.socket : Socket, Address, AddressFamily, SocketType;
public class UNIXListener : BesterListener
{
this(BesterServer besterServer, Address address)
{
super(besterServer);
setServerSocket(setupUNIXSocket(address));
}
private Socket setupUNIXSocket(Address address)
{
Socket unixSocket = new Socket(AddressFamily.UNIX, SocketType.STREAM);
unixSocket.bind(address);
return unixSocket;
}
}
public class TCP4Listener : BesterListener
{
this(BesterServer besterServer, Address address)
{
super(besterServer);
setServerSocket(setupTCP4Socket(address));
}
private Socket setupTCP4Socket(Address address)
{
Socket tcp4Socket = new Socket(AddressFamily.INET, SocketType.STREAM);
tcp4Socket.bind(address);
return tcp4Socket;
}
}
public class TCP6Listener : BesterListener
{
this(BesterServer besterServer, Address address)
{
super(besterServer);
setServerSocket(setupTCP6Socket(address));
}
private Socket setupTCP6Socket(Address address)
{
Socket tcp6Socket = new Socket(AddressFamily.INET6, SocketType.STREAM);
tcp6Socket.bind(address);
return tcp6Socket;
}
}