Здравствуйте, хочу установить связь с сервером на Win Server ... при дебаге на локальном компьютере приложение работает ( Использую IP 127.0.0.1 в клиенте) - соединение клиент приложения и сервер приложение происходит
После сборки и копирование серверного приложения на Win Server от амазон, добавил Public Ip Address (указан в правом углу на рабочем столе сервера).... в клиентское приложение и Получаю такое исключение :
System.Net.Sockets.SocketException: 'Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера
. Где у меня ошибка ?
Мой код :
Server
TcpListener server = null;
try
{
Int32 port = 7000;
server = new TcpListener(IPAddress.Any, port);
server.Start();
// Buffer for reading data
Byte[] bytes = new Byte[512];
String data = null;
// Enter the listening loop.
while (true)
{
Console.Write("Waiting for a connection... ");
// Perform a blocking call to accept requests.
// You could also use server.AcceptSocket() here.
using var client = await server.AcceptTcpClientAsync();
NetworkStream ns = client.GetStream();
byte[] msg = new byte[1024]; // готовим место для принятия сообщения
int count = ns.Read(msg, 0, msg.Length);
string message = Encoding.Default.GetString(msg, 0, count).Trim(); // читаем сообщение от клиента
// для получения и отправки сообщений
byte[] hello = new byte[100];
hello = Encoding.Default.GetBytes("hello world");
ns.Write(hello, 0, hello.Length);
}
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
finally
{
server.Stop();
}
клиент
try
{
string machineName = new DeviceIdBuilder()
.AddMachineName()
.AddMacAddress()
.ToString();
// "15.188.63.174" - public address
TcpClient client = new TcpClient("15.188.63.174", 7000);
Byte[] data = System.Text.Encoding.ASCII.GetBytes(machineName);
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
// Buffer to store the response bytes.
var dataBuffer = new Byte[225];
// String to store the response ASCII representation.
String responseData = String.Empty;
Int32 bytes = stream.Read(dataBuffer, 0, dataBuffer.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
// Close everything.
stream.Close();
client.Close();
}
catch
{
return false;
}