Опубликовать проект UWP - PullRequest
       18

Опубликовать проект UWP

0 голосов
/ 18 октября 2018

Здравствуйте. Я пытался создать две программы (серверную и клиентскую) на одной машине.Я сделал это с WPF, а затем попытался сделать это с UWP, но мне это не удалось.Проблема в том, что слушатель на сервере ожидает соединения, но оно никогда не приходит.Это происходит только тогда, когда я пытаюсь установить соединение из двух отдельных проектов.Если я делаю это в одном проекте, все работает нормально.Я где-то видел, что невозможно запустить сервер и клиент с одной машины с UWP, но информация была не так хорошо объяснена.Поэтому мой вопрос: возможно ли сделать два отдельных проекта с помощью UWP для сервера и клиента на одном компьютере, и если нет, то как я могу протестировать программы (нужен ли мне другой компьютер для тестирования или есть какой-то другой способ сделать это).
А может кто-нибудь сказать мне, есть ли возможный способ опубликовать мой проект, такой как опция из Консольных приложений, чтобы я мог отправить своего клиента на другой компьютер, а затем попробовать.Все, что я мог найти в Интернете, - это как опубликовать ваши Приложения в Магазине Microsoft.

Сервер

public sealed partial class MainPage : Page
{        
    string port = "11000";
    string hostv4 = "127.0.0.1";
    StreamSocketListener server;
    public MainPage()
    {
         InitializeComponent();
         StartServer();

    }

    private async void StartServer()
    {

         HostName name = new HostName(hostv4);
         server = new StreamSocketListener();
         server.ConnectionReceived += this.Receive;
         await server.BindEndpointAsync(name, port);                        
         Chat.Content += ("server is listening...\n");//chat is a ScrollViewer where I show the received messsges

    }

    private async void Receive(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
    {
            string receivedMsg;
            using (var sr = new StreamReader(args.Socket.InputStream.AsStreamForRead()))
            {

                receivedMsg = await sr.ReadLineAsync();
            }

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Chat.Content += (string.Format("server received the request: \"{0}\"\n", receivedMsg)));

    }


}  

Клиент

public sealed partial class MainPage : Page
{
    string port = "11000";
    string hostv4 = "127.0.0.1";
    StreamSocket client;
    public MainPage()
    {
         this.InitializeComponent();
         Connect();
    }

    private async void Connect()
    {
            client = new StreamSocket();
            HostName name = new HostName(hostv4);

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Chat.Content += (string.Format("client trying to connect...\n")));
            await client.ConnectAsync(name, port);

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Chat.Content += (string.Format("client connected\n")));
       }

    private async void Button_Click(object sender, RoutedEventArgs e)
    {
            string request = Input.Text; //Input is the name of my TextBox
            using (Stream outputStream = client.OutputStream.AsStreamForWrite())
            {
                using (var sw = new StreamWriter(outputStream))
                {
                    await sw.WriteLineAsync(request);
                    await sw.FlushAsync();
                }
            }

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Chat.Content += (string.Format("client sent request: {0}\n", request)));
     }  

Я также включил Интернет (Клиент и Сервер) и Частные сети (Клиент и Сервер) из Возможностей

...