Это простой калькулятор маски IP, но когда я запускаю программу, я хочу, чтобы она отображала широковещательный и сетевой адрес, но окно сразу закрывается, когда я запускаю его. Может ли кто-нибудь сказать мне, что я делаю неправильно?Консольное окно закрывается сразу же при запуске программы
namespace ConsoleApplication5
{
public static class Project3
{
static void Main(string[] args)
{
Console.WriteLine("Hello");
var ip1 = IPAddress.Parse("192.168.0.1");
var ip2 = IPAddress.Parse("192.168.1.40");
var mask = IPAddress.Parse("255.255.255.0");
bool inSameNet = ip1.IsInSameSubnet(ip2, mask);
IPAddress broadcast = GetBroadcastAddress(ip2, mask);
IPAddress net = GetNetworkAddress(ip2, mask);
Console.WriteLine(broadcast);
Console.WriteLine(net);
}
public static IPAddress GetBroadcastAddress(this IPAddress address, IPAddress subnetMask)
{
byte[] addressBytes = address.GetAddressBytes();
byte[] subnetMaskBytes = subnetMask.GetAddressBytes();
if (addressBytes.Length != subnetMaskBytes.Length)
throw new ArgumentException("No Match.");
byte[] broadcastAddress = new byte[addressBytes.Length];
for (int i = 0; i < broadcastAddress.Length; i++)
{
broadcastAddress[i] = (byte)(addressBytes[i] | (subnetMaskBytes[i]^255));
}
return new IPAddress(broadcastAddress);
}
public static IPAddress GetNetworkAddress(this IPAddress address, IPAddress subnetMask)
{
byte[] netAddressBytes = address.GetAddressBytes();
byte[] subnetMaskBytes = subnetMask.GetAddressBytes();
if (netAddressBytes.Length != subnetMaskBytes.Length)
throw new ArgumentException("No match.");
byte[] broadcastAddress = new byte[netAddressBytes.Length];
for (int i = 0; i < broadcastAddress.Length; i++)
{
broadcastAddress[i] = (byte)(netAddressBytes[i] & (subnetMaskBytes[i]));
}
return new IPAddress(broadcastAddress);
}
public static bool IsInSameSubnet(this IPAddress address2, IPAddress address, IPAddress subnetMask)
{
IPAddress network1 = address.GetNetworkAddress(subnetMask);
IPAddress network2 = address2.GetNetworkAddress(subnetMask);
return network1.Equals(network2);
}
}
}
это нормальное поведение, попробуйте добавить 'Console.Read()' после этой строки 'Console.WriteLine (нетто),' ' – MethodMan
Нажмите Ctrl' +' F5' или добавить 'Console.ReadLine()' как последняя строка метода «Главная». – dotctor
, потому что процесс завершается после вычисления масок. просто добавьте 'Console.Readline();' после 'Console.WriteLine (net);' – Benj