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, () => this.serverListBox.Items.Add(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, () => this.serverListBox.Items.Add(string.Format("server sent back the response: \"{0}\"", request)));

            sender.Dispose();

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => this.serverListBox.Items.Add("server closed its socket"));
        }
Пример #2
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()))
        {
            using (Stream outputStream = args.Socket.OutputStream.AsStreamForWrite())
            {
                using (var streamWriter = new StreamWriter(outputStream))
                {
                    await SendMessage(streamWriter, "localhost");

                    while (request.ToLower() != "exit")
                    {
                        request = await streamReader.ReadLineAsync();

                        PlayerPrefs.SetString("host", request);
                        PlayerPrefs.Save();
                        await SendMessage(streamWriter, request);
                    }
                }
            }
        }

        sender.Dispose();
        serverStatus = ServerStatus.Stopped;
    }
Пример #3
0
        private async void StreamSocketListener_ConnectionReceived(Windows.Networking.Sockets.StreamSocketListener sender, Windows.Networking.Sockets.StreamSocketListenerConnectionReceivedEventArgs args)
        {
            var x = 0;
            var y = 0;

            using (var streamReader = new StreamReader(args.Socket.InputStream.AsStreamForRead()))
            {
                //DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType());
                //deserializedUser = ser.ReadObject(ms) as Coord;

                ////var coords = new (streamReader).Deserialize<Dictionary<string, Double>>;
                // x = coords["x"];
                // y = coords["y"];
                var ser = new JsonSerializer();

                using (var jsonTextReader = new JsonTextReader(streamReader))
                {
                    dynamic c = ser.Deserialize(jsonTextReader);
                    x = c.x;
                    y = c.y;
                }
            }

            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => this.updateCoordinates(x, y));

            // Echo the request back as the response.
            sender.Dispose();

            // await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => this.serverListBox.Items.Add("server closed its socket"));
        }
Пример #4
0
 public async Task<bool> StartServer()
 {
     Listener = new StreamSocketListener();
     // Removes binding first in case it was already bound previously.
     Listener.ConnectionReceived -= Listener_ConnectionReceived;
     Listener.ConnectionReceived += Listener_ConnectionReceived;
     try
     {
         await Listener.BindServiceNameAsync("4555"); // Your port goes here.
         if(globalDataSet.DebugMode) Debug.Write("Server started \n");
         return true;
     }
     catch (Exception ex)
     {
         Listener.ConnectionReceived -= Listener_ConnectionReceived;
         Listener.Dispose();
         return false;
     }
 }
Пример #5
0
 private void HandleConnectionReceived(StreamSocketListener listener,
   StreamSocketListenerConnectionReceivedEventArgs args)
 {
   provider.StopAdvertising();
   listener.Dispose();
   DoConnect(args.Socket);
 }
Пример #6
0
        private void ListenerOnConnectionReceived(StreamSocketListener Listener, StreamSocketListenerConnectionReceivedEventArgs Args)
        {
            var deviceName = "";
            var serviceName = "";
            HostName hostName = null;
            
            try
            {
                // Only supports a single connection for the moment so we won't need these again
                _serviceProvider.StopAdvertising();
                Listener.Dispose();

                _socket = Args.Socket;
                _writer = new DataWriter(_socket.OutputStream);
                _reader = new DataReader(_socket.InputStream);

                if (_socket.Information != null)
                {
                    // Turns out this only gives us the host address and an
                    // arbitrary number for service name. Pretty useless.
                    deviceName = _socket.Information.RemoteHostName.DisplayName;
                    hostName = _socket.Information.RemoteHostName;
                    serviceName = _socket.Information.RemoteServiceName;
                }
            } 
            catch (Exception ex)
            {
                ServerState = BluetoothServerState.Faulted;
                if (ConnectionError != null)
                    ConnectionError(this, ex);

                return;
            }

            ServerState = BluetoothServerState.Connected;
            if (ClientConnected != null)
            {
                var device = new BluetoothDevice(deviceName, hostName, serviceName);
                var connection = new DuplexConnection(_reader, _writer);
                ClientConnected(this, new ClientConnectedEventArgs(device, connection));
            }
        }
        private async void _bluetooth_connection_received(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
        {
            try
            {
                scan_transfer_speed();
                
                _datareader = new DataReader(args.Socket.InputStream);
                _datareader.InputStreamOptions = InputStreamOptions.Partial;

                _datawriter_foracks = new DataWriter(args.Socket.OutputStream);

                StorageFolder folder = KnownFolders.PicturesLibrary;
                StorageFile file = await folder.CreateFileAsync(this.filepath, CreationCollisionOption.ReplaceExisting);

                IRandomAccessStream filestream = await file.OpenAsync(FileAccessMode.ReadWrite);
                IOutputStream filewriter = filestream.GetOutputStreamAt(0);

                _datawriter = new DataWriter(filewriter);

                while (!((_length = await _datareader.LoadAsync(65000)) == 0))
                {
                    while (_writing) { }

                    _transferspeed += _length;

                    _buffer = new byte[_length];
                    _datareader.ReadBytes(_buffer);

                    _datawriter.WriteBytes(_buffer);
                    await _datawriter.StoreAsync();
                }

                _datawriter.Dispose();
                filewriter.Dispose();
                filestream.Dispose();
                _datareader.Dispose();

                _transferspeed /= 1024;
                _message = format_message(_stopwatch.Elapsed, "Transferspeed", _transferspeed.ToString(), "kB/s");
                this.callback.on_transfer_speed_change(_message, this.results);
                this.main_view.text_to_logs(_message.Replace("\t", " "));

                _timer.Cancel();
                
                sender.Dispose();
                _bluetooth_listener.Dispose();

                _message = format_message(_stopwatch.Elapsed, "File Transfer", "OK", this.filepath);
                this.callback.on_file_received(_message, this.results);
                this.main_view.text_to_logs(_message.Replace("\t", " "));

                _stopwatch.Stop();
            }
            catch (Exception e)
            {
                append_error_tolog(e, _stopwatch.Elapsed, "");
            }
        }
Пример #8
0
        // This is the static method used to start listening for connections.

        public static async Task<bool> StartServer()
        {
            InitGPIO();
            timer = new Timer(TimerCallback, null, 0, timerTime);

            Listener = new StreamSocketListener();
            // Removes binding first in case it was already bound previously.
            Listener.ConnectionReceived -= Listener_ConnectionReceived;
            Listener.ConnectionReceived += Listener_ConnectionReceived;
            try
            {
                await Listener.BindServiceNameAsync("4555"); // Your port goes here.
                Debug.Write("Server started \n");
                return true;
            }
            catch (Exception ex)
            {
                Listener.ConnectionReceived -= Listener_ConnectionReceived;
                Listener.Dispose();
                return false;
            }
        }