|
|
|
|
using System;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Net;
|
|
|
|
|
using System.Net.Sockets;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace _04_AdivinaNumeroMulti {
|
|
|
|
|
public partial class Form1 : Form {
|
|
|
|
|
int NumeroAdivinar = new Random().Next(1, 101);
|
|
|
|
|
string data;
|
|
|
|
|
public Form1() {
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ManejarCliente(TcpClient cli) {
|
|
|
|
|
NetworkStream ns = cli.GetStream();
|
|
|
|
|
StreamReader sr = new StreamReader(ns);
|
|
|
|
|
StreamWriter sw = new StreamWriter(ns);
|
|
|
|
|
|
|
|
|
|
sw.WriteLine("Bienvenido!!, intenta adivinar mi numero");
|
|
|
|
|
sw.Flush();
|
|
|
|
|
|
|
|
|
|
//escucha infinita
|
|
|
|
|
for (; ; ) {
|
|
|
|
|
try {
|
|
|
|
|
data = sr.ReadLine(); //linea bloqueante
|
|
|
|
|
|
|
|
|
|
// this.label1.Text += data + System.Environment.NewLine;
|
|
|
|
|
// this.label1.Refresh();
|
|
|
|
|
Debug.WriteLine(data);
|
|
|
|
|
|
|
|
|
|
//lógica adivinación
|
|
|
|
|
int i;
|
|
|
|
|
if (!int.TryParse(data, out i)) {
|
|
|
|
|
sw.WriteLine("solo se permiten numeros");
|
|
|
|
|
sw.Flush();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (System.Convert.ToInt64(data) > this.NumeroAdivinar) {
|
|
|
|
|
sw.WriteLine("mi numero es menor");
|
|
|
|
|
sw.Flush();
|
|
|
|
|
} else if (System.Convert.ToInt64(data) < this.NumeroAdivinar) {
|
|
|
|
|
sw.WriteLine("mi numero es mayor");
|
|
|
|
|
sw.Flush();
|
|
|
|
|
} else {
|
|
|
|
|
sw.WriteLine("HAS ACERTADO");
|
|
|
|
|
sw.Flush();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception error) {
|
|
|
|
|
Debug.WriteLine("Error: " + error.ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ns.Close();
|
|
|
|
|
cli.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void Button1_Click(object sender, EventArgs e) {
|
|
|
|
|
TcpListener newsock = new TcpListener(IPAddress.Any, 2000);
|
|
|
|
|
newsock.Start();
|
|
|
|
|
|
|
|
|
|
//escucha infinita de clientes que quieran conectarse
|
|
|
|
|
while (true) {
|
|
|
|
|
TcpClient client = newsock.AcceptTcpClient(); //linea bloqueante
|
|
|
|
|
Thread t = new Thread(() => this.ManejarCliente(client));
|
|
|
|
|
t.Start();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|