private Socket Bind( IPEndPoint ipep )
{
Socket s = new Socket( ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp );
try
{
s.LingerState.Enabled = false;
#if !MONO
s.ExclusiveAddressUse = false;
#endif
s.Bind( ipep );
s.Listen( 8 );
return s;
}
catch ( Exception e )
{
if ( e is SocketException ) {
SocketException se = (SocketException)e;
if ( se.ErrorCode == 10048 ) { // WSAEADDRINUSE
Console.WriteLine( "Listener Failed: {0}:{1} (In Use)", ipep.Address, ipep.Port );
}
else if ( se.ErrorCode == 10049 ) { // WSAEADDRNOTAVAIL
Console.WriteLine( "Listener Failed: {0}:{1} (Unavailable)", ipep.Address, ipep.Port );
}
else {
Console.WriteLine( "Listener Exception:" );
Console.WriteLine( e );
}
}
return null;
}
}