Подключение к TCP-серверу, работающему в приложении UWPC#

Место общения программистов C#
Ответить
Anonymous
 Подключение к TCP-серверу, работающему в приложении UWP

Сообщение Anonymous »

Я пытаюсь запустить TCP-сервер из моего приложения UWP. Однако я не могу подключиться к серверу из другого приложения (которое я запускаю на том же компьютере). Я попробовал использовать команду telnet.
Этот фрагмент работает правильно, если я использую его в приложении командной строки, в приложении UWP он выполняется, но никогда не получает никаких запросов на подключение.

Код: Выделить всё

TcpListener serverSocket = new TcpListener(System.Net.IPAddress.Parse("127.0.0.1"), 3457);
int requestCount = 0;
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
Console.WriteLine(" >> Server Started at " + serverSocket.LocalEndpoint);
while (!serverSocket.Pending()) ;      //The App will loop infinitely here never receiving any requests.
clientSocket = serverSocket.AcceptTcpClient();
Console.WriteLine(" >> Accept connection from client");
requestCount = 0;

while ((true))
{
try
{
requestCount = requestCount + 1;
NetworkStream networkStream = clientSocket.GetStream();
byte[] bytesFrom = new byte[65536];
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
string dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("\0"));
Console.WriteLine(" >> Data from client - " + dataFromClient);
string serverResponse = "Last Message from client: " + dataFromClient;
Byte[] sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0, sendBytes.Length);
networkStream.Flush();
Console.WriteLine(" >> " + serverResponse);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Я также попробовал приведенный здесь пример, но все равно не смог подключиться. На этой странице также упоминается, что два приложения uwp на одном компьютере не могут обмениваться данными через TCP из-за сетевой изоляции. Мое второе приложение не uwp, но я все равно отключил его с помощью checknetisolation loopbackexempt -a -n=имя_пакета. что тоже не решило проблему.
поскольку он работает с консолью, я думаю, что это связано с тем, что UWP не позволяет мне получить к нему доступ, однако я не понимаю, почему. Я отключил брандмауэр, но проблема не в этом.
Если кто-нибудь знает, в чем проблема или у кого-то есть идеи, я был бы признателен.
Я добавил следующее в свое приложение в манифесте: если я использую имя семейства пакетов, я получаю сообщение об ошибке DEP0700: не удалось зарегистрировать приложение. [0x80073CF6] ошибка 0x8000FFFF, и он говорит, что при попытке зарегистрировать правила доступа к петле не удалось из-за «Катастрофического сбоя».
если я использую имя приложения, я могу скомпилировать, но появляется сообщение об ошибке
Невозможно активировать приложение Магазина Windows «XXXX_5f208x3ge840e!App». Запрос на активацию завершился с ошибкой «Невозможно запустить приложение. Попробуйте переустановить приложение, чтобы решить проблему».

Подробнее здесь: https://stackoverflow.com/questions/626 ... in-uwp-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»