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."); } }
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(); }
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"); ; }
public void CloseSocket() { socketListener.Dispose(); }