как открыть порт в Azure? Windows Server 2016
На c# написал прогу, которая должна передавать с сервера на устройство текст, изображение и прогу(что-то типо магазина приложении), но при запуске возникает эта проблема как на 1 фото. Проблема заключается в портах. Я пытался открыть порты через Azure как на 2 фото, так же открывал через файрволл, но непомогает, что делать?
Вот код сервера
class Program
{
const int port = 48657;
public static string[] array = new string[10];
static TcpListener listener;
static void Main(string[] args)
{
Console.WriteLine("start?");
string a = Console.ReadLine();
if (a == "yes")
{
try
{
listener = new TcpListener(IPAddress.Parse("127.0.0.1"), port);
listener.Start();
while (true)
{
TcpClient client = listener.AcceptTcpClient();
ClientObject clientObject = new ClientObject(client);
Thread clientThread = new Thread(new ThreadStart(clientObject.Process));
clientThread.Start();
}
}
catch
{
}
finally
{
if (listener != null)
listener.Stop();
}
}
else
{
Program2.Main1("");
}
}
}
public class ClientObject
{
public TcpClient client;
public ClientObject(TcpClient tcpClient)
{
client = tcpClient;
}
string[] morearray(string[] array)
{
string[] arraynew = new string[array.Length + 1];
for (int i = 0; i < array.Length; i++)
{
arraynew[i] = array[i];
}
return arraynew;
}
public void Process()
{
NetworkStream stream = null;
try
{
stream = client.GetStream();
byte[] data = new byte[64]; // буфер для получаемых данных
while (true)
{
// получаем сообщение
StringBuilder builder = new StringBuilder();
int bytes = 0;
do
{
bytes = stream.Read(data, 0, data.Length);
builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
}
while (stream.DataAvailable);
string message = builder.ToString();
for (int i = 0; i < Program.array.Length; i++)
{
if (i + 1 == Program.array.Length)
{
Program.array = morearray(Program.array);
}
if (Program.array[i] == null)
{
if (message != "Connection")
{
Program.array[i] = message + "➽";
}
break;
}
}
Console.WriteLine(message);
for (int i = 0; i < Program.array.Length; i++)
{
message += Program.array[i];
}
data = Encoding.Unicode.GetBytes(message);
stream.Write(data, 0, data.Length);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (stream != null)
stream.Close();
if (client != null)
client.Close();
}
}
}
Ответы (1 шт):
Судя по всему, вам необходимо настроить Правила исходящего порта (с сервера наружу). Если не удается это сделать на уровне ВМ, то это делается в обычном случае на уровне NSG (Сетевая группа безопасности), в которую сетевой данной ВМ входит.
Следуйте официальной документации по NSG: https://docs.microsoft.com/ru-ru/azure/virtual-network/manage-network-security-group


