2016-12-30 9 views
0

Я пытаюсь подключиться к серверу C# TCP. Я работаю на EC2. Но мой сервер не отвечает. Это код, который работает на EC2:подключиться к серверу C# на EC2 (AWS)

static void Main(string[] args) 
{ 
    TcpListener serverSocket = new TcpListener(8888); 
    TcpClient clientSocket = default(TcpClient); 
    serverSocket.Start(); 
    clientSocket = serverSocket.AcceptTcpClient(); 
    Console.WriteLine("new client connected"); 
} 

И они от моего собственного PC я пытаюсь запустить этот код:

static void Main(string[] args) 
{ 
    TcpClient clientSocket = new TcpClient(); 
    clientSocket.Connect("35.163.41.3", 8888); 
    Console.WriteLine("you connected to the server!"); 
} 

Это группа безопасности моего EC2:

Security group

В чем проблема?

+0

Работает ли ваш код локально? – shadowfox476

+0

@ shadowfox476 Когда я запускаю сервер и клиент на своем локальном ПК с IP '127.0.0.1', он работает, а также, если я запускаю сервер и клиент в EC2 с IP' 127.0.0.1', он работает, но не с IP '35.163.41.3' – roni

ответ

2

Это может быть несколько вещей. Первое, что я хотел бы проверить, - это брандмауэр Windows на сервере, чтобы убедиться, что он разрешает этот порт.

+0

Кроме того, как упоминалось выше, я проверил бы, будет ли он отвечать на localhost на сервере, используя telnet или какой-либо другой клиент. – KevinSeaman

+0

Спасибо! это была проблема. когда я отключил брандмауэр, перейдя к: «Панель управления \ Все элементы панели управления \ Брандмауэр Windows»> «Включить или отключить брандмауэр Windows» !. Я знаю, что это не идея об отключении брандмауэра, но если вы хотите получить подробную информацию, вы можете разрешить только некоторые порты и IP-адреса – roni