private async void CharacteristicStreamButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // Create a client socket and connect to the server.
                //Windows.Networking.Sockets.
                if (socket == null)
                {
                    socket = new Windows.Networking.Sockets.StreamSocket();
                }
                // Define the server name and port
                Windows.Networking.HostName serverHost = new Windows.Networking.HostName("localhost");
                string serverPort = "1337";

                // Connect to server
                await socket.ConnectAsync(serverHost, serverPort);

                // launch the HR data stream routine.
                socket.InputStream.AsStreamForRead();
                //

                // Start listening for incoming TCP connections on the specified port.
            }
            catch (Exception ex)
            {
                // This happens when the network socket failed to create
                rootPage.NotifyUser(ex.Message, NotifyType.ErrorMessage);
            }
        }
Exemplo n.º 2
0
        public static async void SendCommand(string message, string ip)
        {
            using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
            {
                try
                {
                    await streamSocket.ConnectAsync(new HostName(ip), "9999");

                    using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                    {
                        byte[] encrypted = Encrypt(message);
                        await outputStream.WriteAsync(encrypted, 0, encrypted.Length);

                        await outputStream.FlushAsync();
                    }
                }
                catch (Exception oops)
                {
                    ContentDialog dialog = new ContentDialog
                    {
                        Title           = "Communication error",
                        Content         = "The following error occurred while attempting to communicate with the switch:\n\n" + oops.Message,
                        CloseButtonText = "OK"
                    };
                    await dialog.ShowAsync();
                }
            }
        }
Exemplo n.º 3
0
        private async void connectbutton_ClickAsync(object sender, RoutedEventArgs e)
        {
            mTimer2.Start();
            TextBox TBox = IP;

            Ip = TBox.Text;
            var settings = ApplicationData.Current.LocalSettings;

            settings.Values["IP"]     = Ip;
            serverDisposed.Visibility = Visibility.Collapsed;
            try
            {
                socket = new Windows.Networking.Sockets.StreamSocket();
                Windows.Networking.HostName serverHost = new Windows.Networking.HostName(Ip);
                string serverPort = "1337";
                await socket.ConnectAsync(serverHost, serverPort);

                Stream streamOut = socket.OutputStream.AsStreamForWrite();
                Writer = new StreamWriter(streamOut);
                VerticalPage verticalpage = frame.Content as VerticalPage;
                verticalpage.AppearImg();
                //create timer
                mTimer.Tick    += MTimer_Tick;
                mTimer.Interval = TimeSpan.FromSeconds(5);
                mTimer.Start();

                connectbutton.Visibility = Visibility.Collapsed;
                stackPanel.Visibility    = Visibility.Collapsed;
                serverIP.Visibility      = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 4
0
        private async void LongListSelector_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            List <string> selectedDeviceNames = App.ViewModel
                                                .Settings
                                                .EnabledBuetoothDevicesCanonicalNames
                                                .Where(d => !e.RemovedItems.Cast <BluetoothDeviceViewModel>().Any(ri => ri.CanonicalName.Equals(d, StringComparison.OrdinalIgnoreCase)))
                                                .ToList();

            try
            {
                foreach (var item in e.AddedItems)
                {
                    var bluetoothDevice = item as BluetoothDeviceViewModel;
                    if (bluetoothDevice == null || selectedDeviceNames.Any(dn => dn.Equals(bluetoothDevice.CanonicalName, StringComparison.OrdinalIgnoreCase)))
                    {
                        continue;
                    }
                    using (var socket = new Windows.Networking.Sockets.StreamSocket())
                        await socket.ConnectAsync(new Windows.Networking.HostName(bluetoothDevice.CanonicalName), "{00001101-0000-1000-8000-00805f9b34fb}");
                    selectedDeviceNames.Add(bluetoothDevice.CanonicalName);
                }
            }
            catch (System.Exception)
            {
                MessageBox.Show("One or more selected devices do not support the Serial Port Profile and cannot be used");
            }

            App.ViewModel.Settings.EnabledBuetoothDevicesCanonicalNames = selectedDeviceNames;
        }
Exemplo n.º 5
0
        public void Connect()
        {
            TvDirectSocket = new Windows.Networking.Sockets.StreamSocket();
            TvDirectSocket.ConnectAsync(ConnectedHostName, ConnectedPort.ToString()).Completed += newConnected;
            ConnectionState = TvConnectionState.Connecting;

            Connecting?.Invoke();
        }
Exemplo n.º 6
0
        public static async Task <XDocument> SockeRequest(
            string ip,
            string port,
            string strReq
            )
        {
            XDocument doc = null;

            try
            {
                var socket     = new Windows.Networking.Sockets.StreamSocket();
                var serverHost = new Windows.Networking.HostName(ip);
                await socket.ConnectAsync(serverHost, port);

                //Send request
                DataWriter writer = new DataWriter(socket.OutputStream);

                writer.WriteUInt32(writer.MeasureString(strReq));
                writer.WriteString(strReq);
                await writer.StoreAsync();

                await writer.FlushAsync();

                writer.DetachStream();
                writer.Dispose();


                //Read response
                Stream streamIn = socket.InputStream.AsStreamForRead();
                int    bsize    = 4096;
                byte[] buffer   = new byte[bsize];
                int    readByte = await streamIn.ReadAsync(
                    buffer,
                    0,
                    bsize
                    );

                if (readByte <= 0)
                {
                    //return null if there is no response
                    return(doc);
                }
                byte[] rdata = new byte[readByte];
                Array.Copy(buffer, rdata, readByte);
                streamIn.Dispose();
                socket.Dispose();


                doc = XDocument.Parse(Encoding.ASCII.GetString(rdata));
            }
            catch (Exception ex)
            {
            }
            return(doc);
        }
Exemplo n.º 7
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            if (this.btnConnect.Label == "Connect")
            {
                try
                {
                    Windows.Networking.HostName serverHost = new Windows.Networking.HostName(txtIP.Text);

                    string serverPort = txtPort.Text;
                    await socket.ConnectAsync(serverHost, serverPort);

                    Stream       streamOut = socket.OutputStream.AsStreamForWrite();
                    BinaryWriter writer    = new BinaryWriter(streamOut);
                    Stream       streamIn  = socket.InputStream.AsStreamForRead();
                    BinaryReader reader    = new BinaryReader(streamIn);

                    Boolean connOn     = true;
                    int     countLimit = handshake.Length + zonelabels.Length;

                    handshake[0] = App.createLoginString(this.txtPassword.Password);
                    int[] fixedLenght = new int[] { 53 };

                    this.txtEvent.Text  = "Connecting...";
                    this.txtStatus.Text = "Status: Connecting...";
                    await comms(reader, writer, handshake, answerLenghtArray, 0);

                    this.txtEvent.Text    = "Retrieving Zone Labels...";
                    this.txtStatus.Text   = "Status: Connected";
                    this.btnConnect.Label = "Disconnect";
                    await comms(reader, writer, zonelabels, fixedLenght, 2);

                    int i = 1;
                    foreach (CheckBox item in this.gridView.Items)
                    {
                        item.Content = Mappings.zoneLabel[i];
                        i++;
                    }


                    while (connOn)
                    {
                        await comms(reader, writer, retrieveInfo, fixedLenght, 1000);
                    }
                }
                catch (Exception er)
                {
                    Debug.WriteLine("ops...");
                    Debug.WriteLine(er.Message);
                }
            }
            else
            {
                socket.Dispose();
            }
        }
Exemplo n.º 8
0
        private async Task OnSend()
        {
            if (string.IsNullOrEmpty(IPAddress))
            {
                await NotifyAsync("Destination IP is Empty");

                return;
            }
            IsBusy = true;
            var contentType = Enum.Parse <ContentType>(_selectedContentType.ToString());

            if (CoreApplication.Properties.ContainsKey("listener"))
            {
                Windows.Networking.Sockets.StreamSocket socket = null;
                try
                {
                    var host = new Windows.Networking.HostName(IPAddress);
                    socket = new Windows.Networking.Sockets.StreamSocket();
                    socket.Control.KeepAlive = false;
                    await socket.ConnectAsync(host, App.ServiceName);

                    switch (contentType)
                    {
                    case ContentType.File:
                        await SendFileAsync(socket.InputStream, socket.OutputStream);

                        break;

                    case ContentType.Code:
                        var language = Enum.Parse <HighlightedLanguage>(_language.ToString());
                        await SendContentAsync(socket.InputStream, socket.OutputStream, contentType, language);

                        break;

                    case ContentType.Text:
                        await SendContentAsync(socket.InputStream, socket.OutputStream, contentType);

                        break;
                    }
                }
                catch (Exception ex)
                {
                    await NotifyAsync(ex.Message);
                }
                finally
                {
                    socket?.Dispose();
                    IsBusy = false;
                }
            }
            else
            {
                await NotifyAsync("Somthing wrong.. Please Restart the app and try again");
            }
        }
Exemplo n.º 9
0
        // Purpose:     Connect to node.js application (lamechat.js)
        // End Result:  node.js app now has a socket open that can send
        //              messages back to this tcp client application
        private async void cmdConnect_Click(object sender, RoutedEventArgs e)
        {
            AddPrompt();
            Windows.Networking.HostName serverHost = new Windows.Networking.HostName("127.0.0.1");
            await tcpClient.ConnectAsync(serverHost, "8000");

            serverStream = tcpClient.OutputStream.AsStreamForWrite();

            StreamWriter writer  = new StreamWriter(serverStream);
            string       request = txtChatName.Text.Trim() + " is joining";
            await writer.WriteLineAsync(request);

            await writer.FlushAsync();

            Stream       streamIn = tcpClient.InputStream.AsStreamForRead();
            StreamReader reader   = new StreamReader(streamIn);
            string       response = await reader.ReadLineAsync();

            //byte[] outStream = Encoding.ASCII.GetBytes(txtChatName.Text.Trim()
            //                      + " is joining");
            //serverStream.Write(outStream, 0, outStream.Length);
            //serverStream.Flush();

            // upload as javascript blob
            //Task taskOpenEndpoint = Task.Factory.StartNew(() =>
            //{
            //    while (true)
            //    {
            //        // Read bytes
            //        serverStream = tcpClient.InputStream.AsStreamForRead();
            //        byte[] message = new byte[4096];
            //        int bytesRead;
            //        bytesRead = 0;

            //        try
            //        {
            //            // Read up to 4096 bytes
            //            bytesRead = serverStream.Read(message, 0, 4096);
            //        }
            //        catch
            //        {
            //            /*a socket error has occured*/
            //        }

            //        //We have rad the message.
            //        ASCIIEncoding encoder = new ASCIIEncoding();
            //        // Update main window
            //        AddMessage(encoder.GetString(message, 0, bytesRead));
            //        //Thread.Sleep(500);
            //    }
            //});
        }
Exemplo n.º 10
0
        /// <summary>
        /// This is the click handler for the 'ConnectSocket' button.
        /// </summary>
        /// <param name="sender">Object for which the event was generated.</param>
        /// <param name="e">Event's parameters.</param>
        private async void ConnectSocket_Click(object sender, RoutedEventArgs e)
        {
            // By default 'HostNameForConnect' is disabled and host name validation is not required. When enabling the
            // text box validating the host name is required since it was received from an untrusted source
            // (user input). The host name is validated by catching ArgumentExceptions thrown by the HostName
            // constructor for invalid input.
            Windows.Networking.HostName hostName;

            try
            {
                hostName = new Windows.Networking.HostName(HostNameForConnect.Text);
            }
            catch (ArgumentException)
            {
                return;
            }

            string[] serviceNames =
            {
                _vlcLeftLeftServiceName.Text,
                _vlcLeftFrontServiceName.Text,
                _vlcRightFrontServiceName.Text,
                _vlcRightRightServiceName.Text,
            };

            // Save the socket, so subsequent steps can use it.
            try
            {
                foreach (var serviceName in serviceNames)
                {
                    Task.Run(async() =>
                    {
                        var socket = new Windows.Networking.Sockets.StreamSocket();
                        socket.Control.KeepAlive = true;

                        await socket.ConnectAsync(hostName, serviceName);

                        OnServerConnectionEstablished(socket);
                    });
                }
            }
            catch (Exception exception)
            {
                // If this is an unknown status it means that the error is fatal and retry will likely fail.
                if (Windows.Networking.Sockets.SocketError.GetStatus(exception.HResult) ==
                    Windows.Networking.Sockets.SocketErrorStatus.Unknown)
                {
                    throw;
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public async Task SendContinuiously(string message)
        {
            // this will temperarly hold the responce string
            string responce; // may be

            // set the is listening value to true while this is going on
            IsListening = true;


            try
            {
                // this will keep running this fuction until another thead stops it
                while (IsListening)
                {
                    // Create the StreamSocket and establish a connection to the echo server.
                    streamSocket = new Windows.Networking.Sockets.StreamSocket();

                    // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
                    await streamSocket.ConnectAsync(hostName, this.portNumber);

                    // send the message
                    using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                    {
                        //
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            await streamWriter.WriteLineAsync(message);

                            await streamWriter.FlushAsync();
                        }
                    }

                    // wait for the message
                    using (Stream inputStream = streamSocket.InputStream.AsStreamForRead())
                    {
                        using (StreamReader streamReader = new StreamReader(inputStream))
                        {
                            responce = await streamReader.ReadLineAsync();
                        }
                    }

                    message = this.responder.Respond(ref responce);
                }
            }
            catch (Exception ex)
            {
                Windows.Networking.Sockets.SocketErrorStatus webErrorStatus = Windows.Networking.Sockets.SocketError.GetStatus(ex.GetBaseException().HResult);
                this.Output(MessageHelper.MessageType.Exception, webErrorStatus.ToString() != "Unknown" ? webErrorStatus.ToString() : ex.Message);
            }
        }
Exemplo n.º 12
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            var streamSocketListener = new Windows.Networking.Sockets.StreamSocketListener();

            streamSocketListener.ConnectionReceived += this.StreamSocketListener_ConnectionReceived;
            await streamSocketListener.BindServiceNameAsync("1337");

            var streamSocket = new Windows.Networking.Sockets.StreamSocket();
            await streamSocket.ConnectAsync(new Windows.Networking.HostName("localhost"), "1337");

            this.SendMultipleBuffersInefficiently(streamSocket, "Hello, World!");
            //this.BatchedSendsCSharpOnly(streamSocket, "Hello, World!");
            //this.BatchedSendsAnyUWPLanguage(streamSocket, "Hello, World!");
        }
Exemplo n.º 13
0
        private Task <Stream> OpenStreamAsyncImpl()
        {
            return(Task.Run <Stream>(async() =>
            {
#if WINDOWS_UWP
                await CoreWindow.GetForCurrentThread().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
                {
                    await _service.RequestAccessAsync();
                });
#endif
                Windows.Networking.Sockets.StreamSocket socket = new Windows.Networking.Sockets.StreamSocket();
                await socket.ConnectAsync(_service.ConnectionHostName, _service.ConnectionServiceName);
                return new NetworkStream(socket);
            }));
        }
Exemplo n.º 14
0
        private async void UpdateList()
        {
            try
            {
                // Create the StreamSocket and establish a connection to the echo server.
                using (var streamSocket2 = new Windows.Networking.Sockets.StreamSocket())
                {
                    // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
                    var hostName = new Windows.Networking.HostName(ip.Text);
                    await streamSocket2.ConnectAsync(hostName, MainPage.outPortNumber);

                    // Send a request to the server and update list.
                    string request = "UpdateSaveList";
                    using (Stream outputStream = streamSocket2.OutputStream.AsStreamForWrite())
                    {
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            await streamWriter.WriteLineAsync(request);

                            await streamWriter.FlushAsync();
                        }
                    }

                    string response;
                    using (Stream inputStream = streamSocket2.InputStream.AsStreamForRead())
                    {
                        using (StreamReader streamReader = new StreamReader(inputStream))
                        {
                            this.SaveList.Items.Clear();
                            response = await streamReader.ReadLineAsync();

                            string[] responses = response.Split(',');
                            foreach (string rep in responses)
                            {
                                if (rep != "")
                                {
                                    this.SaveList.Items.Add(rep);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 15
0
        private static async void StartClient()
        {
            try
            {
                using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
                {
                    var hostName = new Windows.Networking.HostName("localhost");

                    Debug.WriteLine("client is trying to connect...");

                    await streamSocket.ConnectAsync(hostName, PortNumber);

                    Debug.WriteLine("client connected");

                    string request = "CLIENT";
                    using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                    {
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            await streamWriter.WriteLineAsync(request);

                            await streamWriter.FlushAsync();
                        }
                    }

                    Debug.WriteLine(string.Format("client sent the request: \"{0}\"", request));

                    string response;
                    using (Stream inputStream = streamSocket.InputStream.AsStreamForRead())
                    {
                        using (StreamReader streamReader = new StreamReader(inputStream))
                        {
                            response = await streamReader.ReadLineAsync();
                        }
                    }

                    Debug.WriteLine(string.Format("client received the response: \"{0}\" ", response));
                }

                Debug.WriteLine("client closed its socket");
            }
            catch (Exception ex)
            {
                Windows.Networking.Sockets.SocketErrorStatus webErrorStatus = Windows.Networking.Sockets.SocketError.GetStatus(ex.GetBaseException().HResult);
                Debug.WriteLine(webErrorStatus.ToString() != "Unknown" ? webErrorStatus.ToString() : ex.Message);
            }
        }
Exemplo n.º 16
0
        public override bool ConnectAsync(TimeSpan timeout, TransportAsyncCallbackArgs callbackArgs)
        {
            var streamSocket = new Windows.Networking.Sockets.StreamSocket();
            var addr         = this.transportSettings.Host;

            this.callbackArgs = callbackArgs;

            var connectTask = streamSocket.ConnectAsync(new Windows.Networking.HostName(addr), this.transportSettings.Port.ToString(), Windows.Networking.Sockets.SocketProtectionLevel.PlainSocket).AsTask();

            connectTask.ContinueWith(_ =>
            {
                TransportBase transport = null;
                Exception exception     = null;

                try
                {
                    transport = new TcpTransport(streamSocket, this.transportSettings);
                    transport.Open();
                }
                catch (Exception exp)
                {
                    if (Fx.IsFatal(exp))
                    {
                        throw;
                    }

                    exception = exp;
                    if (transport != null)
                    {
                        transport.SafeClose();
                    }
                    transport = null;
                }

                var completeSynchronously = false;
                this.callbackArgs.CompletedSynchronously = completeSynchronously;
                this.callbackArgs.Exception = exception;
                this.callbackArgs.Transport = transport;

                if (!completeSynchronously)
                {
                    this.callbackArgs.CompletedCallback(this.callbackArgs);
                }
            });
            return(true);
        }
Exemplo n.º 17
0
        public override bool ConnectAsync(TimeSpan timeout, TransportAsyncCallbackArgs callbackArgs)
        {
            var streamSocket = new Windows.Networking.Sockets.StreamSocket();
            var addr = this.transportSettings.Host;

            this.callbackArgs = callbackArgs;

            var connectTask = streamSocket.ConnectAsync(new Windows.Networking.HostName(addr), this.transportSettings.Port.ToString(), Windows.Networking.Sockets.SocketProtectionLevel.PlainSocket).AsTask();
            connectTask.ContinueWith(_ =>
            {
                TransportBase transport = null;
                Exception exception = null;

                try
                {
                    transport = new TcpTransport(streamSocket, this.transportSettings);
                    transport.Open();
                }
                catch (Exception exp)
                {
                    if (Fx.IsFatal(exp))
                    {
                        throw;
                    }

                    exception = exp;
                    if (transport != null)
                    {
                        transport.SafeClose();
                    }
                    transport = null;
                }

                var completeSynchronously = false;
                this.callbackArgs.CompletedSynchronously = completeSynchronously;
                this.callbackArgs.Exception = exception;
                this.callbackArgs.Transport = transport;

                if (!completeSynchronously)
                {
                    this.callbackArgs.CompletedCallback(this.callbackArgs);
                }
            });
            return true;
        }
Exemplo n.º 18
0
        public async Task Start()
        {
            try
            {
                //The server hostname that we will be establishing a connection to. We will be running the server and client locally,
                //so we will use localhost as the hostname.
                Windows.Networking.HostName serverHost = new Windows.Networking.HostName("127.0.0.1");

                //Every protocol typically has a standard port number. For example HTTP is typically 80, FTP is 20 and 21, etc.
                //For the echo server/client application we will use a random port 8080.
                string serverPort = "8080";
                await socket.ConnectAsync(serverHost, serverPort);
            }
            catch (Exception e)
            {
                //Handle exception here.
            }
        }
Exemplo n.º 19
0
        public async Task <bool> ConnectAsync()
        {
            try
            {
                sock = new Windows.Networking.Sockets.StreamSocket();
                Windows.Networking.HostName hostname = new Windows.Networking.HostName(ServerName);
                await sock.ConnectAsync(hostname, ServiceName);

                writer = new Windows.Storage.Streams.DataWriter(sock.OutputStream);
                reader = new Windows.Storage.Streams.DataReader(sock.InputStream);
                StartReceiveDataAsync();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Exemplo n.º 20
0
        public async void init()
        {
            try
            {
                Windows.Networking.Sockets.StreamSocket socket     = new Windows.Networking.Sockets.StreamSocket();
                Windows.Networking.HostName             serverHost = new Windows.Networking.HostName("localhost");
                string serverPort = "1337";
                await socket.ConnectAsync(serverHost, serverPort);

                streamIn  = socket.InputStream.AsStreamForRead();
                streamOut = socket.OutputStream.AsStreamForWrite();
                Debug.WriteLine("Connected successfully");
            }
            catch (Exception e)
            {
                Debug.WriteLine("Failed to connect: " + e.Message);
            }
        }
Exemplo n.º 21
0
        private async void UpdateDataSave(string name)
        {
            try
            {
                // Create the StreamSocket and establish a connection to the echo server.
                using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
                {
                    // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
                    var hostName = new Windows.Networking.HostName("localhost");
                    await streamSocket.ConnectAsync(hostName, MainPage.outPortNumber);

                    // Send a request to the server and update list.
                    string request = name;
                    using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                    {
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            await streamWriter.WriteLineAsync(request);

                            await streamWriter.FlushAsync();
                        }
                    }

                    string response;
                    using (Stream inputStream = streamSocket.InputStream.AsStreamForRead())
                    {
                        using (StreamReader streamReader = new StreamReader(inputStream))
                        {
                            response = await streamReader.ReadLineAsync();

                            string[] responses = response.Split(',');
                            this.name.Text         = "Task name : " + responses[0];
                            this.source.Text       = "Source folder : " + responses[1];
                            this.target.Text       = "Target folder : " + responses[2];
                            this.progressBar.Value = Convert.ToDouble(responses[3]);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 22
0
        private async void ReadThread(object host)
        {
            reading = true;
            Windows.Networking.Sockets.StreamSocket socket = new Windows.Networking.Sockets.StreamSocket();

            await socket.ConnectAsync((Windows.Networking.HostName) host, InTheHand.Devices.Bluetooth.Rfcomm.RfcommServiceId.SerialPort.AsString());

            byte[] buffer = new byte[32];
            System.Text.StringBuilder sb = new StringBuilder();

            while (reading)
            {
                IBuffer returnedBuffer = await socket.InputStream.ReadAsync(buffer.AsBuffer(), (uint)buffer.Length, Windows.Storage.Streams.InputStreamOptions.Partial);

                // break loop if response is empty (connection fail etc)
                if (returnedBuffer.Length == 0)
                {
                    break;
                }

                string s = System.Text.Encoding.UTF8.GetString(buffer, 0, (int)returnedBuffer.Length);

                if (!string.IsNullOrEmpty(s))
                {
                    if (s.IndexOf('\0') > -1)
                    {
                        s = s.Substring(0, s.IndexOf('\0'));
                    }

                    sb.Append(s);

                    // Only process when we have a complete line
                    if (sb.ToString().EndsWith("\r"))
                    {
                        Dispatcher.BeginInvoke(new Action <string>(this.InsertMessage), sb.ToString());
                        sb.Clear();
                    }
                }
            }

            socket.Dispose();
        }
Exemplo n.º 23
0
        public async Task <bool> ConnectAsync()
        {
            //Monitor.Enter(nstreamlock);
            try
            {
                sock = new Windows.Networking.Sockets.StreamSocket();
                Windows.Networking.HostName hostname = new Windows.Networking.HostName(ServerName);
                await sock.ConnectAsync(hostname, ServiceName);

                writer = new Windows.Storage.Streams.DataWriter(sock.OutputStream);
                reader = new Windows.Storage.Streams.DataReader(sock.InputStream);
                //Monitor.Exit(nstreamlock);
                return(true);
            }
            catch
            {
                Disconnect();
                // Monitor.Exit(nstreamlock);
                return(false);
            }
        }
Exemplo n.º 24
0
        /// <summary>
        /// Just sends a single message to another device
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public async Task Send(string message)
        {
            try
            {
                // Create the StreamSocket and establish a connection to the echo server.
                streamSocket = new Windows.Networking.Sockets.StreamSocket();
                // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.

                await streamSocket.ConnectAsync(hostName, this.portNumber);

                // send the message
                await SendInternal(message);

                this.Close();
            }
            catch (Exception ex)
            {
                Windows.Networking.Sockets.SocketErrorStatus webErrorStatus = Windows.Networking.Sockets.SocketError.GetStatus(ex.GetBaseException().HResult);
                this.Output(MessageHelper.MessageType.Exception, webErrorStatus.ToString() != "Unknown" ? webErrorStatus.ToString() : ex.Message);
            }
        }
Exemplo n.º 25
0
        /// <summary>
        /// This is the click handler for the 'ConnectSocket' button.
        /// </summary>
        /// <param name="sender">Object for which the event was generated.</param>
        /// <param name="e">Event's parameters.</param>
        private async void ConnectSocket_Click(object sender, RoutedEventArgs e)
        {
            // By default 'HostNameForConnect' is disabled and host name validation is not required. When enabling the
            // text box validating the host name is required since it was received from an untrusted source
            // (user input). The host name is validated by catching ArgumentExceptions thrown by the HostName
            // constructor for invalid input.
            Windows.Networking.HostName hostName;

            try
            {
                hostName = new Windows.Networking.HostName(HostNameForConnect.Text);
            }
            catch (ArgumentException)
            {
                return;
            }

            var pvCameraSocket = new Windows.Networking.Sockets.StreamSocket();

            pvCameraSocket.Control.KeepAlive = true;

            // Save the socket, so subsequent steps can use it.
            try
            {
                // Connect to the server (by default, the listener we created in the previous step).
                await pvCameraSocket.ConnectAsync(hostName, _pvServiceName.Text);
            }
            catch (Exception exception)
            {
                // If this is an unknown status it means that the error is fatal and retry will likely fail.
                if (Windows.Networking.Sockets.SocketError.GetStatus(exception.HResult) ==
                    Windows.Networking.Sockets.SocketErrorStatus.Unknown)
                {
                    throw;
                }
            }

            OnServerConnectionEstablished(
                pvCameraSocket);
        }
Exemplo n.º 26
0
        public async void StartClient()
        {
            try
            {
                // Create the StreamSocket and establish a connection to the echo server.
                using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
                {
                    // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
                    var hostName = new Windows.Networking.HostName("localhost");

                    await streamSocket.ConnectAsync(hostName, PortNumber);

                    // Send a request to the echo server.
                    string request = "Hello, World!";
                    using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                    {
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            await streamWriter.WriteLineAsync(request);

                            await streamWriter.FlushAsync();
                        }
                    }

                    // Read data from the echo server.
                    string response;
                    using (Stream inputStream = streamSocket.InputStream.AsStreamForRead())
                    {
                        using (StreamReader streamReader = new StreamReader(inputStream))
                        {
                            response = await streamReader.ReadLineAsync();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Windows.Networking.Sockets.SocketErrorStatus webErrorStatus = Windows.Networking.Sockets.SocketError.GetStatus(ex.GetBaseException().HResult);
            }
        }
Exemplo n.º 27
0
        //Create a socket and attempt connection to remote server
        //In future, an entry from a 2D UWP application can provide inputs into the hard coded values
#if UNITY_UWP
        async void ConnectToRemote()
        {
            try
            {
                //if  (dataExchange != null)
                //  StopExchange();
                //Socket setup
                socket = new Windows.Networking.Sockets.StreamSocket();
                Windows.Networking.HostName serverHost = new Windows.Networking.HostName("40.76.194.87");
                await socket.ConnectAsync(serverHost, "62520");

                Debug.LogError("connection successful");
                Stream outStream = socket.OutputStream.AsStreamForWrite();
                writer = new StreamWriter(outStream);
                Stream inStream = socket.InputStream.AsStreamForRead();
                reader = new StreamReader(inStream);
            }
            catch (System.Exception except)
            {
                Debug.LogError(except.ToString());
            }
        }
Exemplo n.º 28
0
    private async Task ConnectUWP(string host, string port)
    {
        Debug.Log("ConnectUWP");
        if (exchangeTask != null)
        {
            StopExchange();
        }
        socket = new Windows.Networking.Sockets.StreamSocket();
        Windows.Networking.HostName serverHost = new Windows.Networking.HostName(host);
        try {
            await socket.ConnectAsync(serverHost, port);

            byteWriter = socket.OutputStream.AsStreamForWrite();
            writer     = new StreamWriter(byteWriter)
            {
                AutoFlush = true
            };
        } catch (Exception e) {
            errorStatus = e.ToString();
            Debug.Log("connection error:" + errorStatus);
        }
    }
Exemplo n.º 29
0
        private async void LocalIpAsync()
        {
            try
            {
                var    settings = ApplicationData.Current.LocalSettings;
                object value    = settings.Values["IP"];
                string IPValue  = value.ToString();
                IP.Text = IPValue;
                mTimer2.Start();
                Windows.Networking.HostName serverHost = new Windows.Networking.HostName(IPValue);
                string serverPort = "1337";
                socket = new Windows.Networking.Sockets.StreamSocket();
                await socket.ConnectAsync(serverHost, serverPort);

                Stream streamOut = socket.OutputStream.AsStreamForWrite();
                Writer = new StreamWriter(streamOut);
                //create timer
                mTimer.Tick    += MTimer_Tick;
                mTimer.Interval = TimeSpan.FromSeconds(5);
                mTimer.Start();
                //read data from server
                Stream       streamIn = socket.InputStream.AsStreamForRead();
                StreamReader reader   = new StreamReader(streamIn);
                if (reader != null)
                {
                    connectFalse.Visibility = Visibility.Visible;
                    connectFalse.Content    = reader;
                }
            }
            catch (Exception e)
            {
                connectbutton.Visibility = Visibility.Visible;
                stackPanel.Visibility    = Visibility.Visible;
                serverIP.Visibility      = Visibility.Visible;
                VerticalPage verticalpage = frame.Content as VerticalPage;
                verticalpage.hideImg();
            }
        }
        /// <summary>
        /// Creates a TCP connection and writes the report to the socket at the provided hostname and port
        /// </summary>
        /// <param name="hostName">hostname</param>
        /// <param name="port">port</param>
        /// <returns>TrxResultChannel</returns>
        public static Task <TrxResultChannel> CreateTcpTrxResultChannel(string hostName, int port)
        {
            if ((port < 0) || (port > ushort.MaxValue))
            {
                throw new ArgumentException("port");
            }

            var HostName = hostName ?? throw new ArgumentNullException(nameof(hostName));
            var Port     = port;

#if __IOS__ || MAC
            UIKit.UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
#endif
            try
            {
#if __IOS__ || MAC || __ANDROID__
                var client  = new System.Net.Sockets.TcpClient(hostName, port);
                var channel = new TrxResultChannel(client.GetStream(), true);
#if __IOS__ || MAC
                channel.showNetworkIndicator = true;
#endif
                return(Task.FromResult(channel));
#elif WINDOWS_PHONE || NETFX_CORE
                var socket = new Windows.Networking.Sockets.StreamSocket();
                return(socket.ConnectAsync(new Windows.Networking.HostName(hostName), port.ToString(CultureInfo.InvariantCulture))
                       .AsTask()
                       .ContinueWith(_ => new TrxResultChannel(socket.OutputStream.AsStreamForWrite(), true)));
#endif
            }
            catch
            {
#if __IOS__ || MAC
                UIKit.UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
#endif
                throw;
            }
        }
Exemplo n.º 31
0
        public void Connect()
        {
            TvDirectSocket = new Windows.Networking.Sockets.StreamSocket();
            TvDirectSocket.ConnectAsync(ConnectedHostName, ConnectedPort.ToString()).Completed += newConnected;
            ConnectionState = TvConnectionState.Connecting;

            if (Connecting != null)
            {
                Connecting();
            }
        }
Exemplo n.º 32
0
        private async Task StartClientBD(string zapros, string ip)
        {
            try
            {
                // Create the StreamSocket and establish a connection to the echo server.
                using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
                {
                    // The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
                    var hostName = new Windows.Networking.HostName(ip);

                    //  this.clientListBox.Items.Add("client is trying to connect...");
                    // MessageDialog messageDialog1 = new MessageDialog("client is trying to connect...");
                    //  await messageDialog1.ShowAsync();

                    await streamSocket.ConnectAsync(hostName, "8888");

                    //  this.clientListBox.Items.Add("client connected");
                    // messageDialog1 = new MessageDialog("client connected");
                    //  await messageDialog1.ShowAsync();
                    // Send a request to the echo server.
                    string request = "BDB!" + "\t" + zapros;

                    using (Stream outputStream = streamSocket.OutputStream.AsStreamForWrite())
                    {
                        using (var streamWriter = new StreamWriter(outputStream))
                        {
                            await streamWriter.WriteLineAsync(request);

                            await streamWriter.FlushAsync();
                        }
                    }

                    // this.clientListBox.Items.Add(string.Format("client sent the request: \"{0}\"", request));
                    //     messageDialog1 = new MessageDialog("client sent the request: \"{0}\"", request);
                    //  await messageDialog1.ShowAsync();
                    // Read data from the echo server.
                    string      response = null;
                    List <byte> list     = new List <byte>();
                    byte[]      Buffer1  = new byte[1024];
                    Windows.Storage.StorageFolder storageFolder =
                        Windows.Storage.ApplicationData.Current.LocalFolder;
                    Windows.Storage.StorageFile sampleFile =
                        await storageFolder.CreateFileAsync("sample.xml",
                                                            Windows.Storage.CreationCollisionOption.ReplaceExisting);

                    using (Stream inputStream = streamSocket.InputStream.AsStreamForRead())
                    {
                        int Count;
                        while ((Count = inputStream.Read(Buffer1, 0, Buffer1.Length)) > 0)
                        {
                            // Преобразуем эти данные в строку и добавим ее к переменной Request
                            for (int i = 0; i < Count; i++)
                            {
                                list.Add(Buffer1[i]);
                            }

                            // Запрос должен обрываться последовательностью \r\n\r\n
                            // Либо обрываем прием данных сами, если длина строки Request превышает 4 килобайта
                            // Нам не нужно получать данные из POST-запроса (и т. п.), а обычный запрос
                            // по идее не должен быть больше 4 килобайт
                        }

                        if (list.Count != 0)
                        {
                            MessageDialog messageDialog12 = new MessageDialog(list.Count.ToString());
                            await messageDialog12.ShowAsync();

                            //  IBuffer buffer = Buffer1.AsBuffer();
                            await Windows.Storage.FileIO.WriteBytesAsync(sampleFile, list.ToArray());

                            MessageDialog messageDialog112 = new MessageDialog("файл создан");
                            await messageDialog112.ShowAsync();
                        }
                    }
                    if (list.Count != 0)
                    {
                        DataSet ds = new DataSet();
                        // XDocument d= System.Xml.Linq.XDocument.Load(sampleFile.Path);
                        ds.ReadXml(sampleFile.Path);
                        // выбираем первую таблицу
                        DataTable dt = ds.Tables[0];

                        await ParserTabSobData(dt);

                        // ViewModel.SostoYs = vs[0];

                        // if (vs.Length > 1)
                        // {

                        // }
                    }

                    else
                    {
                        MessageDialog messageDialog12 = new MessageDialog("Данные по запросу не обнаружены");
                        await messageDialog12.ShowAsync();
                    }

                    MessageDialog messageDialog122 = new MessageDialog("Конец");
                    await messageDialog122.ShowAsync();
                }

                //   this.clientListBox.Items.Add("client closed its socket");
                //  MessageDialog messageDialog = new MessageDialog("client closed its socket");
                //  await messageDialog.ShowAsync();
            }
            catch (Exception ex)
            {
                MessageDialog messageDialog = new MessageDialog("Error" + ex.ToString());
                messageDialog.ShowAsync();
            }
        }