elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] Conectar Socket (denegación)
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] Conectar Socket (denegación)  (Leído 8,326 veces)
DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #10 en: 31 Agosto 2015, 03:09 am »

Gracias nuevamente por las respuestas ocasionadas.

Cuando intento bindear ya me salta al mismo error que tenía al principio:



Así lo binde:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace Server
  10. {
  11.    class Program
  12.    {
  13.        static void Main(string[] args)
  14.        {
  15.            Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  16.  
  17.            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80);
  18.            //System.Threading.Thread t = new System.Threading.Thread(endPoint);
  19.            sck.Bind(endPoint);
  20.            sck.Listen(0);
  21.            System.Threading.Thread.Sleep(1000);
  22.            sck.Connect(endPoint);
  23.  
  24.  
  25.            Socket acc = sck.Accept();
  26.  
  27.            byte[] buffer = Encoding.Default.GetBytes("Hola Client!");
  28.            acc.Send(buffer, 0, buffer.Length, 0);
  29.  
  30.            buffer = new byte[255];
  31.  
  32.            int rec = acc.Receive(buffer, 0, buffer.Length, 0);
  33.  
  34.            Array.Resize(ref buffer, rec);
  35.  
  36.            Console.WriteLine("Mostrando: {0}", Encoding.Default.GetString(buffer));
  37.  
  38.            sck.Close();
  39.            acc.Close();
  40.  
  41.            Console.ReadKey();
  42.        }
  43.    }
  44. }
  45.  

Ejecuto siempre primero Server y luego Client. Aunque lo haga viceversa me salta el error en Server.

Pero esto ahora es raro no se por que me da permiso denegado.. ya esto no sería fallo del código ¿no?

Muchas gracias.

Saludos.


En línea

Esta página web no está disponible - Google Chrome
kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #11 en: 31 Agosto 2015, 03:18 am »

Vale ya se me ocurre, y seguramente sea eso. El socket que intentas abrir ya está reservado por el sistema, fíjate si no existe otro proceso escuchando en el puerto 80.

Si fuese el caso y necesitarás dicho proceso, podrías aplicar la técnica de TCP port stealing la cual permite bindear/asociarse al mismo puerto que otra aplicación, aunque creo que había que especificar una flag para reutilizar el socket.

No tiene que ver con el fallo en cuestión, pero en el code de tu server después de hacer Listen intentas conectar, cosa que arrojará una excepción ya que el socket está siendo utilizado para la escucha. Para eso tienes el cliente, que será otro .exe u otro hilo/subproceso dentro del mismo proceso.

Ya tienes para probar.. Y recuerda, si el server escucha, no conectes desde el mismo.

Saludos.


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #12 en: 31 Agosto 2015, 21:46 pm »

Vale ya se me ocurre, y seguramente sea eso. El socket que intentas abrir ya está reservado por el sistema, fíjate si no existe otro proceso escuchando en el puerto 80.

Si fuese el caso y necesitarás dicho proceso, podrías aplicar la técnica de TCP port stealing la cual permite bindear/asociarse al mismo puerto que otra aplicación, aunque creo que había que especificar una flag para reutilizar el socket.

No tiene que ver con el fallo en cuestión, pero en el code de tu server después de hacer Listen intentas conectar, cosa que arrojará una excepción ya que el socket está siendo utilizado para la escucha. Para eso tienes el cliente, que será otro .exe u otro hilo/subproceso dentro del mismo proceso.

Ya tienes para probar.. Y recuerda, si el server escucha, no conectes desde el mismo.

Saludos.

Gracias por la ayuda.
Al parecer no me dejaba acceder por que el IIS ocupaba el puerto 80.

Ahora parece funcionar debidamente.

Dejo aquí el código para utilidad.

Cliente:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace Client
  10. {
  11.    class Program
  12.    {
  13.        static void Main(string[] args)
  14.        {
  15.            Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  16.  
  17.            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80);
  18.            sck.Connect(endPoint);
  19.  
  20.            Console.WriteLine("Introduzca su mensaje:");
  21.            string msg = Console.ReadLine();
  22.  
  23.            byte[] msgBuffer = Encoding.Default.GetBytes(msg);
  24.            sck.Send(msgBuffer, 0, msgBuffer.Length, 0);
  25.  
  26.            byte[] buffer = new byte[255];
  27.  
  28.            int rec = sck.Receive(buffer, 0, buffer.Length, 0);
  29.  
  30.            Array.Resize(ref buffer, rec);
  31.  
  32.            Console.WriteLine("Servidor: {0}", Encoding.Default.GetString(buffer));
  33.  
  34.            Console.ReadKey();
  35.        }
  36.    }
  37. }
  38.  

Servidor:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace Server
  10. {
  11.    class Program
  12.    {
  13.        static void Main(string[] args)
  14.        {
  15.            Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  16.  
  17.            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80);
  18.            sck.Bind(endPoint);
  19.            Console.WriteLine("Conectando...");
  20.            System.Threading.Thread.Sleep(1000);
  21.            sck.Listen(0);
  22.            Console.WriteLine("Se ha conectado correctamente.");
  23.  
  24.            Socket acc = sck.Accept();
  25.  
  26.            byte[] buffer = Encoding.Default.GetBytes("Hola Client!");
  27.            acc.Send(buffer, 0, buffer.Length, 0);
  28.  
  29.            buffer = new byte[255];
  30.  
  31.            int rec = acc.Receive(buffer, 0, buffer.Length, 0);
  32.  
  33.            Array.Resize(ref buffer, rec);
  34.  
  35.            Console.WriteLine("Cliente: {0}", Encoding.Default.GetString(buffer));
  36.  
  37.            sck.Close();
  38.            acc.Close();
  39.  
  40.            Console.ReadKey();
  41.        }
  42.    }
  43. }
  44.  

Lo que da un resultado similar a este:



Saludos.
En línea

Esta página web no está disponible - Google Chrome
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Denegación del servicio en vb « 1 2 »
Programación Visual Basic
qiqeroot 18 9,706 Último mensaje 29 Noviembre 2006, 18:05 pm
por xDie
Denegacion de servicio
Programación Visual Basic
elmaro 8 6,046 Último mensaje 27 Agosto 2007, 19:33 pm
por elmaro
Conectar Socket a servicio No IP
Programación C/C++
JavierJV 6 5,459 Último mensaje 22 Enero 2011, 20:38 pm
por JavierJV
Multithread Socket (Thread per Socket)not Complete « 1 2 »
Programación Visual Basic
ntaryl 12 9,266 Último mensaje 10 Febrero 2012, 18:42 pm
por ntaryl
Denegación de servicio en iOS al conectar a una WiFi
Noticias
wolfbcn 0 1,202 Último mensaje 25 Abril 2015, 02:24 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines