56 lines
1.2 KiB
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;
|
|
}
|
|
}
|
|
|