Mi primer programa usando un socket xD (C#)
October 16, 2007 12:43 am ProgramaciónAsí es, hoy he realizado dos cosas:
1) Mi primer programa usando los tan famosos sockets
2) Mi primer programa usando C#
Estoy tratando de aprende C# por la feria de ciencias en hackerss.com y bueno, me he integrado al grupo de programación
.
En fin 8), puede seguir un curso rápido para crear tu primer socket en 5 min. (si es que sueles leer un poco despacio XD) aqui: http://foro.elhacker.net/index.php?topic=165986.0
Yo he modificado un poco el código fuente para que en el programa principal sólo sea cosa de poner: interfaz(conexion(ip,puerto));, quedando de la siguiente forma:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace Sockets
{
class Program
{
static public Socket conexion(string dir, int puerto)
{
IPAddress ip = Dns.GetHostEntry(dir).AddressList[0];
IPEndPoint canal = new IPEndPoint(ip, puerto);
Socket sockete = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sockete.Bind(canal);
sockete.Listen(100);
Socket link = sockete.Accept();
return link;
}
static public void interfaz(Socket link)
{
byte[] bytes = new byte[1024]; //Declaramos un array de bytes de longitud 1024
int count;
String data = ""; //Declaramos data, que sera donde se almacenaran los datos
do //Bucle Do/While
{
count = link.Receive(bytes); //Recibimos los datos enviados y lo guardamos en count.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, count); //Lo codificamos a cadena (ya que se envian como bytes)
if (data != "exit\n") //Mientras lo recibido no sea exit + \n (es decir, exit + Intro, ya que intro tambien se envia)
{
Console.Write("Se a recibido: {0}", data); //Mostramos lo recibido pro pantalla
}
} while (data != "exit\n"); //Mientras lo recibido no sea exit + Intro se continua el bucle, si recibimos exit + intro, salimos del bucle
Console.WriteLine("Se ha finalizado la conexión"); //Avisamos qde que se a terminado la transferencia de datos
byte[] msg = System.Text.Encoding.ASCII.GetBytes("\n\nFinalizada conexion con la aplicacion"); //Codificamos de string a byte el siguiente mensage para que se pueda enviar al NetCat (Cliente)
link.Send(msg); //Enviamos el mensage al cliente
link.Shutdown(SocketShutdown.Both); //"Apagamos" los sockets
link.Close(); //Los cerramos
}
static void Main(string[] args)
{
interfaz(conexion("localhost", 666));
}
}
}
Las imagenes de demostración (para los que piense que soy chismoso xD):
Netcat:
Programa en ejecución:
Las sugerencias/criticas son bienvenidas (aunque no es nada
).
Nos vemos!!.
p.d Hoy el nuevo capitulo de prison break
Temas Relacionados:


January 16th, 2008 at 3:19 am
Si no fuera porque has copiado el código de:
http://foro.elhacker.net/index.php/topic,165986.msg925980.html
Al menos podias haber cambiado el nombre de las variables…
August 3rd, 2008 at 5:05 pm
jajajajajaja se paso GamA con es ecomentario jajajajaja
August 3rd, 2008 at 5:21 pm
LOL, no entiendo que parte del post no entienden que no es mi código (sólo lo ajuste un poco), bien cito la fuente.