Ejemplo n.º 1
0
        private async void StreamSocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender, Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
        {
            string request;

            using (var streamReader = new StreamReader(args.Socket.InputStream.AsStreamForRead()))
            {
                request = await streamReader.ReadLineAsync();
            }

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>

                                           ShowMessage(string.Format("server received the request: \"{0}\"", request)));

            // Echo the request back as the response.
            using (Stream outputStream = args.Socket.OutputStream.AsStreamForWrite())
            {
                using (var streamWriter = new StreamWriter(outputStream))
                {
                    await streamWriter.WriteLineAsync(request);

                    await streamWriter.FlushAsync();
                }
            }

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => ShowMessage(string.Format("server sent back the response: \"{0}\"", request)));

            sender.Dispose();

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => ShowMessage("server closed its socket"));
        }
 /// <summary>
 /// Used to dispose of the stream socket listener
 /// </summary>
 private async void StopServer()
 {
     if (streamSocketListener != null)
     {
         streamSocketListener.Dispose();
         System.Diagnostics.Debug.WriteLine("Listener stopped.");
     }
 }
Ejemplo n.º 3
0
        private async void button_Click(object sender, RoutedEventArgs e)
        {
            if (sender is Button)
            {
                string content = (string)((Button)sender).Content;
                if (content != "")
                {
                    switch (content)
                    {
                    case "Start Listen":
                        PortNumber = tbPort.Text;
                        await StartServer();

                        this.buttonStartRecv.IsEnabled = false;
                        this.buttonStopRecv.IsEnabled  = true;
                        break;

                    case "Stop Listen":
                        await streamSocketListener.CancelIOAsync();

                        streamSocketListener.Dispose();
                        status.Text = "Socket Server stopped. Press [Start listen]";
                        this.buttonStartRecv.IsEnabled = true;
                        this.buttonStopRecv.IsEnabled  = false;
                        break;

                    case "Back":
                        //if (this.buttonStopRecv.IsEnabled)
                        //{
                        //    await streamSocketListener.CancelIOAsync();
                        //    streamSocketListener.Dispose();
                        //    status.Text = "Socket Server stopped. Press [Start listen]";
                        //    this.buttonStartRecv.IsEnabled = true;
                        //    this.buttonStopRecv.IsEnabled = false;
                        //}
                        this.Frame.GoBack();
                        break;
                    }
                }
            }
        }
        public async void StreamSocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender, Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
        {
            string request;

            using (var streamReader = new StreamReader(args.Socket.InputStream.AsStreamForRead()))
            {
                request = await streamReader.ReadLineAsync();
            }

            Message = request;

            //// Echo the request back as the response.
            //using (Stream outputStream = args.Socket.OutputStream.AsStreamForWrite())
            //{
            //    using (var streamWriter = new StreamWriter(outputStream))
            //    {
            //        await streamWriter.WriteLineAsync(request);
            //        await streamWriter.FlushAsync();
            //    }
            //}

            sender.Dispose();
        }
Ejemplo n.º 5
0
        private async void StreamSocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender, Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
        {
            //string request="";
            string response;

            char[] chars = new char[10];
            chars[1] = 'Z';
            int  responseLength;
            byte cFineStructureConstant = 137;

            try
            {
                using (var streamReader = new StreamReader(args.Socket.InputStream.AsStreamForRead()))
                {
                    using (Stream outputStream = args.Socket.OutputStream.AsStreamForWrite())
                    {
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            if (_Mode == Mode.Disconnected)
                            {
                                response = await streamReader.ReadLineAsync();

                                await streamWriter.WriteLineAsync("Hello World");

                                await streamWriter.FlushAsync();

                                await streamWriter.WriteAsync('@');

                                await streamWriter.FlushAsync();

                                //Once the first transmission/s, iniitaited from thsi end, is received then this end IS connected.
                                _Mode = Mode.Connected;


                                responseLength = await streamReader.ReadAsync(chars, 0, 10);

                                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => recvdText.Text = "" + chars);

                                if (chars[0] == '0')
                                {
                                    await streamWriter.WriteAsync('1');

                                    await streamWriter.FlushAsync();
                                }
                                _Mode = Mode.ACK0;


                                responseLength = await streamReader.ReadAsync(chars, 0, 10);

                                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => recvdText.Text = "" + chars[0]);

                                if (chars[0] == '2')
                                {
                                    await streamWriter.WriteAsync('3');

                                    await streamWriter.FlushAsync();
                                }

                                _Mode = Mode.ACK2;

                                responseLength = await streamReader.ReadAsync(chars, 0, 10);

                                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => recvdText.Text = "" + chars[0]);

                                if (chars[0] == '4')
                                {
                                    await streamWriter.WriteAsync('5');

                                    await streamWriter.FlushAsync();
                                }
                                _Mode = Mode.ACK4;

                                responseLength = await streamReader.ReadAsync(chars, 0, 10);

                                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => recvdText.Text = "" + chars[0]);

                                if (chars[0] == '!')
                                {
                                    await streamWriter.WriteAsync('/');

                                    await streamWriter.FlushAsync();
                                }

                                _Mode = Mode.Ready;


                                responseLength = await streamReader.ReadAsync(chars, 0, 1);

                                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => recvdText.Text = "" + chars[0]);

                                if (chars[0] == '/')
                                {
                                    _Mode = Mode.Json1;
                                    await streamWriter.WriteLineAsync(
                                        "{\"Config\":[ [ { \"iWidth\": 120 },{ \"iHeight\": 100 },{ \"iSpace\": 5 },{ \"iCornerRadius\": 10 },{ \"iRows\": 2 },{ \"iColumns\": 5 },{ \"sComPortId\": \"\\\\\\\\?\\\\USB#VID_26BA&PID_0003#5543830353935161A112#{86e0d1e0-8089-11d0-9ce4-08003e301f73}\" },{ \"sFTDIComPortId\": \"\\\\\\\\?\\\\FTDIBUS#VID_0403+PID_6001+FTG71BUIA#0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}\" },{ \"iComportConnectDeviceNo\": -1 },{ \"iFTDIComportConnectDeviceNo\": 1 },{ \"sUseSerial\": \"BT\" } ] ] }~");

                                    await streamWriter.FlushAsync();

                                    responseLength = await streamReader.ReadAsync(chars, 0, 1);

                                    await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => recvdText.Text = "" + chars[0]);

                                    {
                                        if (chars[0] == '~')
                                        {
                                            _Mode = Mode.Json2;
                                            await streamWriter.WriteLineAsync(
                                                "{\"MainMenu\":[ [ \"Something else\", \"Unload\", \"Show full list\", \"Setup Sockets\", \"The quick brown fox jumps over the lazy dog\" ],[ \"First\", \"Back\", \"Next\", \"Last\", \"Show All\" ] ] }~");

                                            await streamWriter.FlushAsync();

                                            _Mode = Mode.Running;
                                        }
                                        ;
                                    }
                                }

                                bool listening = true;
                                _Mode = Mode.Running;
                                while (listening)
                                {
                                    try
                                    {
                                        responseLength = await streamReader.ReadAsync(chars, 0, 1);
                                    }
                                    catch (Exception ex)
                                    {
                                        await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => status.Text += "\r\n" + "Lost connection:\r\n" + ex.Message);

                                        listening = false;
                                    }

                                    if (listening)
                                    {
                                        switch (chars[0])
                                        {
                                        case '^':
                                            listening = false;
                                            break;

                                        default:
                                            //Do app stuff here. For now just echo chars sent
                                            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => status.Text += "" + chars[0]);

                                            try
                                            {
                                                await streamWriter.WriteAsync(chars[0]);

                                                await streamWriter.FlushAsync();
                                            }
                                            catch (Exception ex)
                                            {
                                                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => status.Text += "\r\n" + "Lost connection:\r\n" + ex.Message);

                                                listening = false;
                                            }
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => status.Text += "\r\n" + "Lost connection:\r\n" + ex.Message);
            }

            //await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => status.Text = string.Format("server sent back the response: \"{0}\"", request));
            sender.Dispose();

            //await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => status.Text = "server closed its socket"); ;
        }
Ejemplo n.º 6
0
 public void CloseSocket()
 {
     socketListener.Dispose();
 }