diff --git a/09-ClientePPTSondeo/09-ClientePPTSondeo.csproj b/09-ClientePPTSondeo/09-ClientePPTSondeo.csproj
new file mode 100644
index 0000000..251ccf0
--- /dev/null
+++ b/09-ClientePPTSondeo/09-ClientePPTSondeo.csproj
@@ -0,0 +1,84 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {95013056-05E7-4433-A755-D9F6F800F968}
+ WinExe
+ _09_ClientePPTSondeo
+ 09-ClientePPTSondeo
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/09-ClientePPTSondeo/App.config b/09-ClientePPTSondeo/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/09-ClientePPTSondeo/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/09-ClientePPTSondeo/Form1.Designer.cs b/09-ClientePPTSondeo/Form1.Designer.cs
new file mode 100644
index 0000000..c596710
--- /dev/null
+++ b/09-ClientePPTSondeo/Form1.Designer.cs
@@ -0,0 +1,205 @@
+namespace _09_ClientePPTSondeo
+{
+ partial class Form1
+ {
+ ///
+ /// Variable del diseñador necesaria.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Limpiar los recursos que se estén usando.
+ ///
+ /// true si los recursos administrados se deben desechar; false en caso contrario.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Código generado por el Diseñador de Windows Forms
+
+ ///
+ /// Método necesario para admitir el Diseñador. No se puede modificar
+ /// el contenido de este método con el editor de código.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.comboBox1 = new System.Windows.Forms.ComboBox();
+ this.textBox2 = new System.Windows.Forms.TextBox();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.button4 = new System.Windows.Forms.Button();
+ this.button3 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.button1 = new System.Windows.Forms.Button();
+ this.button5 = new System.Windows.Forms.Button();
+ this.textBox3 = new System.Windows.Forms.TextBox();
+ this.button6 = new System.Windows.Forms.Button();
+ this.label2 = new System.Windows.Forms.Label();
+ this.timer1 = new System.Windows.Forms.Timer(this.components);
+ this.SuspendLayout();
+ //
+ // comboBox1
+ //
+ this.comboBox1.FormattingEnabled = true;
+ this.comboBox1.Items.AddRange(new object[] {
+ "piedra",
+ "papel",
+ "tijera"});
+ this.comboBox1.Location = new System.Drawing.Point(174, 143);
+ this.comboBox1.Name = "comboBox1";
+ this.comboBox1.Size = new System.Drawing.Size(122, 21);
+ this.comboBox1.TabIndex = 15;
+ //
+ // textBox2
+ //
+ this.textBox2.Location = new System.Drawing.Point(174, 90);
+ this.textBox2.Name = "textBox2";
+ this.textBox2.Size = new System.Drawing.Size(123, 20);
+ this.textBox2.TabIndex = 14;
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(174, 35);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(123, 20);
+ this.textBox1.TabIndex = 13;
+ this.textBox1.Text = "127.0.0.1";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(43, 361);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(35, 13);
+ this.label1.TabIndex = 12;
+ this.label1.Text = "label1";
+ //
+ // button4
+ //
+ this.button4.Location = new System.Drawing.Point(30, 197);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(112, 32);
+ this.button4.TabIndex = 11;
+ this.button4.Text = "Puntuación";
+ this.button4.UseVisualStyleBackColor = true;
+ this.button4.Click += new System.EventHandler(this.button4_Click);
+ //
+ // button3
+ //
+ this.button3.Location = new System.Drawing.Point(30, 140);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(112, 32);
+ this.button3.TabIndex = 10;
+ this.button3.Text = "Jugar";
+ this.button3.UseVisualStyleBackColor = true;
+ this.button3.Click += new System.EventHandler(this.button3_Click);
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(30, 83);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(112, 32);
+ this.button2.TabIndex = 9;
+ this.button2.Text = "Inscribir";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(30, 26);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(112, 32);
+ this.button1.TabIndex = 8;
+ this.button1.Text = "Conectar";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // button5
+ //
+ this.button5.Location = new System.Drawing.Point(30, 252);
+ this.button5.Name = "button5";
+ this.button5.Size = new System.Drawing.Size(112, 32);
+ this.button5.TabIndex = 16;
+ this.button5.Text = "Resultado jugada";
+ this.button5.UseVisualStyleBackColor = true;
+ this.button5.Click += new System.EventHandler(this.button5_Click);
+ //
+ // textBox3
+ //
+ this.textBox3.Location = new System.Drawing.Point(173, 259);
+ this.textBox3.Name = "textBox3";
+ this.textBox3.Size = new System.Drawing.Size(123, 20);
+ this.textBox3.TabIndex = 17;
+ //
+ // button6
+ //
+ this.button6.Location = new System.Drawing.Point(30, 306);
+ this.button6.Name = "button6";
+ this.button6.Size = new System.Drawing.Size(112, 32);
+ this.button6.TabIndex = 18;
+ this.button6.Text = "Sondeo AUTO";
+ this.button6.UseVisualStyleBackColor = true;
+ this.button6.Click += new System.EventHandler(this.button6_Click);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(180, 316);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(35, 13);
+ this.label2.TabIndex = 19;
+ this.label2.Text = "label2";
+ //
+ // timer1
+ //
+ this.timer1.Interval = 1000;
+ this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.button6);
+ this.Controls.Add(this.textBox3);
+ this.Controls.Add(this.button5);
+ this.Controls.Add(this.comboBox1);
+ this.Controls.Add(this.textBox2);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.button4);
+ this.Controls.Add(this.button3);
+ this.Controls.Add(this.button2);
+ this.Controls.Add(this.button1);
+ this.Name = "Form1";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ComboBox comboBox1;
+ private System.Windows.Forms.TextBox textBox2;
+ private System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Button button4;
+ private System.Windows.Forms.Button button3;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button5;
+ private System.Windows.Forms.TextBox textBox3;
+ private System.Windows.Forms.Button button6;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Timer timer1;
+ }
+}
+
diff --git a/09-ClientePPTSondeo/Form1.cs b/09-ClientePPTSondeo/Form1.cs
new file mode 100644
index 0000000..91b0be4
--- /dev/null
+++ b/09-ClientePPTSondeo/Form1.cs
@@ -0,0 +1,101 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace _09_ClientePPTSondeo
+{
+ public partial class Form1 : Form
+ {
+ TcpClient client;
+ NetworkStream ns;
+ StreamReader sr;
+ StreamWriter sw;
+ String dato;
+
+ string ultimaJugada; //para que el timer tick pregunte automaticamente
+
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ client = new TcpClient(this.textBox1.Text, 2000);
+ ns = client.GetStream();
+ sr = new StreamReader(ns);
+ sw = new StreamWriter(ns);
+ dato = sr.ReadLine() + System.Environment.NewLine +
+ sr.ReadLine() + System.Environment.NewLine +
+ sr.ReadLine() + System.Environment.NewLine +
+ sr.ReadLine();
+ this.label1.Text = dato;
+ }
+ catch (Exception error)
+ {
+ Debug.WriteLine("Eroor: " + error.ToString());
+ }
+ }
+
+ private void button2_Click(object sender, EventArgs e)
+ {
+ sw.WriteLine("#INSCRIBIR#" + this.textBox2.Text + "#");
+ sw.Flush();
+ dato = sr.ReadLine();
+ this.label1.Text = dato;
+ }
+
+ private void button4_Click(object sender, EventArgs e)
+ {
+ sw.WriteLine("#PUNTUACION#");
+ sw.Flush();
+ dato = sr.ReadLine();
+ this.label1.Text = dato;
+ }
+
+ private void button3_Click(object sender, EventArgs e)
+ {
+ sw.WriteLine("#JUGADA#" + this.comboBox1.Text + "#");
+ sw.Flush();
+ dato = sr.ReadLine();
+ this.label1.Text = dato;
+ //guradamos la última jugada hecha
+ string[] subdatos = dato.Split('#');
+ ultimaJugada = subdatos[2];
+ }
+
+ private void button5_Click(object sender, EventArgs e)
+ {
+ sw.WriteLine("#RESULTADOJUGADA#" + this.textBox3.Text + "#");
+ sw.Flush();
+ dato = sr.ReadLine();
+ this.label1.Text = dato;
+ }
+
+ private void button6_Click(object sender, EventArgs e)
+ {
+ this.timer1.Enabled = !this.timer1.Enabled;
+ }
+
+ private void timer1_Tick(object sender, EventArgs e)
+ {
+ sw.WriteLine("#RESULTADOJUGADA#" + ultimaJugada + "#");
+ sw.Flush();
+ dato = sr.ReadLine();
+ this.label2.Text = dato;
+ }
+ }
+}
diff --git a/09-ClientePPTSondeo/Form1.resx b/09-ClientePPTSondeo/Form1.resx
new file mode 100644
index 0000000..1f666f2
--- /dev/null
+++ b/09-ClientePPTSondeo/Form1.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/09-ClientePPTSondeo/Program.cs b/09-ClientePPTSondeo/Program.cs
new file mode 100644
index 0000000..38a1571
--- /dev/null
+++ b/09-ClientePPTSondeo/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace _09_ClientePPTSondeo
+{
+ static class Program
+ {
+ ///
+ /// Punto de entrada principal para la aplicación.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/09-ClientePPTSondeo/Properties/AssemblyInfo.cs b/09-ClientePPTSondeo/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..94beeb7
--- /dev/null
+++ b/09-ClientePPTSondeo/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// La información general de un ensamblado se controla mediante el siguiente
+// conjunto de atributos. Cambie estos valores de atributo para modificar la información
+// asociada con un ensamblado.
+[assembly: AssemblyTitle("09-ClientePPTSondeo")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("09-ClientePPTSondeo")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Si establece ComVisible en false, los tipos de este ensamblado no estarán visibles
+// para los componentes COM. Si es necesario obtener acceso a un tipo en este ensamblado desde
+// COM, establezca el atributo ComVisible en true en este tipo.
+[assembly: ComVisible(false)]
+
+// El siguiente GUID sirve como id. de typelib si este proyecto se expone a COM.
+[assembly: Guid("95013056-05e7-4433-a755-d9f6f800f968")]
+
+// La información de versión de un ensamblado consta de los cuatro valores siguientes:
+//
+// Versión principal
+// Versión secundaria
+// Número de compilación
+// Revisión
+//
+// Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión
+// utilizando el carácter "*", como se muestra a continuación:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/09-ClientePPTSondeo/Properties/Resources.Designer.cs b/09-ClientePPTSondeo/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..d2b00a4
--- /dev/null
+++ b/09-ClientePPTSondeo/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// Este código fue generado por una herramienta.
+// Versión de runtime:4.0.30319.42000
+//
+// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+// se vuelve a generar el código.
+//
+//------------------------------------------------------------------------------
+
+namespace _09_ClientePPTSondeo.Properties {
+ using System;
+
+
+ ///
+ /// Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc.
+ ///
+ // StronglyTypedResourceBuilder generó automáticamente esta clase
+ // a través de una herramienta como ResGen o Visual Studio.
+ // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen
+ // con la opción /str o recompile su proyecto de VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_09_ClientePPTSondeo.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las
+ /// búsquedas de recursos mediante esta clase de recurso fuertemente tipado.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/09-ClientePPTSondeo/Properties/Resources.resx b/09-ClientePPTSondeo/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/09-ClientePPTSondeo/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/09-ClientePPTSondeo/Properties/Settings.Designer.cs b/09-ClientePPTSondeo/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..52719b9
--- /dev/null
+++ b/09-ClientePPTSondeo/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// Este código fue generado por una herramienta.
+// Versión de runtime:4.0.30319.42000
+//
+// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+// se vuelve a generar el código.
+//
+//------------------------------------------------------------------------------
+
+namespace _09_ClientePPTSondeo.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/09-ClientePPTSondeo/Properties/Settings.settings b/09-ClientePPTSondeo/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/09-ClientePPTSondeo/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+