Я хочу создать приложение для общения на C#, где вы можете ввести строку в консоль клиента и получить ее в консоли сервера.C# Консоль-приложение в паре через интернет
Что я имею в виду: Пользователь B выполняет клиентскую программу на своем компьютере, которая находится где-то в другом месте, чем у пользователя A. Клиентская программа подключается через TCP к серверной программе, на которой пользователь A открыт на своем компьютере. Когда Пользователь B вводит строку в Программе и нажимает enter, Пользователь A должен получать строку через Интернет.
У меня есть что-то вроде этого:
Сервер:
static void Main(string[] args)
{
Console.WriteLine("Start Server ...");
IPAddress b = IPAddress.Any;
TcpListener Server = new TcpListener(b, 5550);
Server.Start();
Console.WriteLine("Server started.");
Console.WriteLine("Wait for Connection...");
TcpClient Client = Server.AcceptTcpClient();
Console.WriteLine("Succeeded");
Stream MessageStream = Client.GetStream();
while (true)
{
byte[] message = new byte[4096];
int bytesRead;
try
{
bytesRead = MessageStream.Read(message, 0, 4096);
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine(encoder.GetString(message, 0, bytesRead));
}
catch (IOException)
{
break;
}
}
Client.Close();
Server.Stop();
}
Клиент:
static void Main(string[] args)
{
IPAddress IP = IPAddress.Parse("192.168.2.140");
TcpClient Client = new TcpClient();
Client.Connect(IP, 5550);
Stream MessageStream = Client.GetStream();
Console.WriteLine("Success");
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine("Enter Text here");
var input = Console.ReadLine();
if(input != null)
{
byte[] buffer = encoder.GetBytes(input);
MessageStream.Write(buffer, 0, buffer.Length);
MessageStream.Flush();
}
Console.ReadLine();
}
Когда я исполняю клиента на ПК и сервера на моем ноутбуке , он отлично работает, но как он работает с внешними компьютерами?
Когда я заменил
IPAddress IP = IPAddress.Parse("192.168.2.140");
с WAN IP, который я получаю от canihazip.com, он не хочет, чтобы соединиться.
EDIT:
Порт-экспедиционная активируется я думаю,
Проблема заключается в том: Он работает в локальной сети в моем доме, как я хочу, он соединяет, я могу написать текст, который отображается в серверном приложении. Но когда я попрошу некоторых из моих друзей попробовать это, они не могут подключиться к моему серверу.
это звучит как сетевая проблема - убедитесь, что ваш isp не заблокировал вас и что ваш маршрутизатор имеет соответствующие порты. –
Не вопрос программирования, это действительно вопрос ИТ. – BradleyDotNET
@ DanielA.White See Редактировать мой пост, он поддерживает отправку почтой. Как я уже упоминал, в моей локальной сети он работает нормально, но за его пределами, когда я прошу некоторых из моих знакомых попробовать его, клиент не может подключиться из своей сети к моему серверному приложению. – Flauschcoder