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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  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 7,939 veces)
DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
[C#] Conectar Socket (denegación)
« en: 30 Agosto 2015, 17:55 pm »

Buenas,

Tengo un problema a la hora de estableces una conexión socket con la pc.

Código
  1. IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("89.140.16.6"), 80);
  2. sck.Connect(endPoint);

Y me salta este error:



Me dice que el equipo denegó la conexión, y la IP que tengo colocada es la que me aparece en:http://www.cual-es-mi-ip.net/  
PD: No tengo ningún puerto abierto. (modem)

He pensado en bajarme Xampp y cambiar la ip por localhost pero no se si funcionará en W10 y si funcionará como espero.

Su supieran a que se debe dicho error lo agradecería.
Cualquier información adicional es bienvenida.

Saludos.


« Última modificación: 1 Septiembre 2015, 01:37 am por kub0x » En línea

Esta página web no está disponible - Google Chrome
kondrag_X1

Desconectado Desconectado

Mensajes: 157


Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #1 en: 30 Agosto 2015, 18:04 pm »

si trabajas en tu propia máquina porque no usas 127.0.0.1???


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #2 en: 30 Agosto 2015, 18:19 pm »

si trabajas en tu propia máquina porque no usas 127.0.0.1???

Gracias por tu respuesta.
Parece funcionar en la clase Client.

Pero en la parte Server tengo esto:

Código
  1. Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  2.  
  3. sck.Bind(new IPEndPoint(127.0.0.1, 80));
  4. sck.Listen(0);
  5.  

Y me marca error en IPEndPoint:



Cuando me debería aceptar el mismo parámetro que en Client, pero no.

Saludos.
En línea

Esta página web no está disponible - Google Chrome
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #3 en: 30 Agosto 2015, 22:58 pm »

me marca error en IPEndPoint:


Fíjate bien en el mensaje de error, ¿qué te dice?, que no hay ningún constructor que acepte 4 parámetros, por ende, hazte la siguiente pregunta:
¿Qué estoy haciendo mal para que detecte estar pasándole 4 argumentos en lugar de dos?.

Cuando me debería aceptar el mismo parámetro que en Client, pero no.

Es obvio que el código no puede compilar ya que hay un error de sintaxis, no puedes escribir una IP tal cual, se espera un valor entero y no puede contener puntos, lo que escribiste no es "nada", pero es que de todas formas no le estás intentando pasar el mismo valor. ya que en la primera imagen usas el overload que toma cómo argumento un objeto IPAddress, y en la segunda imagen, la del error, intentas utilizar el constructor que toma cómo argumento un valor Int64, intentando pasarle cómo argumento una IP tal cual, la cual obviamente no sep uede reconocer como un valor entero...

En la primera imagen usas la función Parse para parsear una cadena de texto que contiene una IP, hay mucha diferencia, en la segunda imagen no lo haces, usas el otro constructor.

Saludos
« Última modificación: 30 Agosto 2015, 23:28 pm por Eleкtro » En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C#] Conectar Socket (denegación)
« Respuesta #4 en: 30 Agosto 2015, 23:41 pm »

Gracias por tu respuesta.

Creo que era problema al darle valor.

Ahora el problema es que me deniegan el acceso al socket:



La cosa es que en cliente me va bien, me muestra "introduzca el mensaje":

Código
  1. Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  2.  
  3.            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80);
  4.            sck.Connect(endPoint);
  5.  
  6.            Console.WriteLine("Introduzca su mensaje: ");
  7.            string msg = Console.ReadLine();
  8.  
  9.            byte[] msgBuffer = Encoding.Default.GetBytes(msg);
  10.            sck.Send(msgBuffer, 0, msgBuffer.Length, 0);
  11.  
  12.            byte[] buffer = new byte[255];
  13.  
  14.            int rec = sck.Receive(buffer, 0, buffer.Length, 0);
  15.  
  16.            Array.Resize(ref buffer, rec);
  17.  
  18.            Console.WriteLine("Recibo: {0}", Encoding.Default.GetString(buffer));
  19.  
  20.            Console.ReadKey

Y el problema me lo da en el servidor al ejecutarlo:
Código
  1. Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  2.  
  3.            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80);
  4.            sck.Bind(endPoint);
  5.            sck.Listen(0);
  6.  
  7.            Socket acc = sck.Accept();
  8.  
  9.            byte[] buffer = Encoding.Default.GetBytes("Hola Client!");
  10.            acc.Send(buffer, 0, buffer.Length, 0);
  11.  
  12.            buffer = new byte[255];
  13.  
  14.            int rec = acc.Receive(buffer, 0, buffer.Length, 0);
  15.  
  16.            Array.Resize(ref buffer, rec);
  17.  
  18.            Console.WriteLine("Mostrando: {0}", Encoding.Default.GetString(buffer));
  19.  
  20.            sck.Close();
  21.            acc.Close();
  22.  
  23.            Console.ReadKey();

¿A que puede deberse esto? ¿Puede estar ocupado el sockets?

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 #5 en: 31 Agosto 2015, 01:35 am »

Buenas!

He ejecutado tu snippet y va perfecto. Ahora, el método main me queda así:

Código
  1. static void Main(string[] args)
  2.        {
  3.            System.Threading.Thread t = new System.Threading.Thread(Listen);
  4.            t.Start();
  5.            System.Threading.Thread.Sleep(1000);
  6.            Connect();
  7.        }

Debes de hacer un método para el Listen y otro para el Connect y primero llamas al Listen desde el hilo, esperas 1 seg y llamas a Connect.

No he tocado nada de tu code. Pruébalo y nos cuentas.

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 #6 en: 31 Agosto 2015, 02:18 am »

Gracias por su respuesta.
He logrado algo más, pero me he quedado un poco atrancado por acá.

Tengo esto en server:

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.Sleep(1000);
  19.            sck.Connect(endPoint);
  20.            sck.Listen(0);
  21.  
  22.  
  23.            Socket acc = sck.Accept();
  24.  
  25.            byte[] buffer = Encoding.Default.GetBytes("Hola Client!");
  26.            acc.Send(buffer, 0, buffer.Length, 0);
  27.  
  28.            buffer = new byte[255];
  29.  
  30.            int rec = acc.Receive(buffer, 0, buffer.Length, 0);
  31.  
  32.            Array.Resize(ref buffer, rec);
  33.  
  34.            Console.WriteLine("Mostrando: {0}", Encoding.Default.GetString(buffer));
  35.  
  36.            sck.Close();
  37.            acc.Close();
  38.  
  39.            Console.ReadKey();
  40.        }
  41.    }
  42. }
  43.  

Si no coloco:
Código
  1. sck.Listen(0);

Me da este mensaje:



Y si coloco el sck.Listen(0) me da esto:



Parece que fallo en algo... y no doy con ello. Disculpa las molestias ocasionadas.

Y aquí por si quiere ver la parte client (aquí creo que no me pasa nada ya que lo inicio y me dice que ingrese un mensaje, pero no recibo respuestas):

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

Lo tengo ordenados por 2 proyectos, osea Client y Server.



Gracias de nuevo.
Más o menos me acerco más al problema. Pero no se es raro.

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 #7 en: 31 Agosto 2015, 02:24 am »

¿Por que en el server haces un connect antes que el listen? El server bindea y escucha nada más, el cliente sólo conecta.

Primero ejecuta el server, déjalo en segundo plano corriendo y acto seguido ejecuta el cliente, dos .exe independientes como bien dices. Debería funcionar.

Si no sigues los pasos descritos seguirá teniendo problemas. Suerte y nos cuentas ;)

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 #8 en: 31 Agosto 2015, 02:41 am »

Me quedo atrapado en escuchar el listen.

Código
  1. //System.Threading.Thread t = new System.Threading.Thread(endPoint);

No logro encontrar que valor devolverle. Pongo endPoint o sck y me subraya en error.

Por lo que he intentado hacerlo así:

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.Listen(0);
  20.            System.Threading.Thread.Sleep(1000);
  21.            sck.Connect(endPoint);
  22.  
  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("Mostrando: {0}", Encoding.Default.GetString(buffer));
  36.  
  37.            sck.Close();
  38.            acc.Close();
  39.  
  40.            Console.ReadKey();
  41.        }
  42.    }
  43. }
  44.  

Pero me marca que no le paso al sck.Listen un argumento válido.



Gracias y disculpe las molestias ocacionadas.

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 #9 en: 31 Agosto 2015, 02:54 am »

Buenas de nuevo.

En ese code antes del Listen de falta bindear el socket al EndPoint que has instanciado justo una linea arriba.

Recuerda:

El server primero instancia el endpoint, se bindea o se liga o se asocia (sinónimos de bindear) al endpoint y luego se hace el listen.

Una vez que el listen veas que funciona se corre el cliente y el server debería aceptarlo.

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

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 8,959 Último mensaje 29 Noviembre 2006, 18:05 pm
por xDie
Denegacion de servicio
Programación Visual Basic
elmaro 8 5,522 Último mensaje 27 Agosto 2007, 19:33 pm
por elmaro
Conectar Socket a servicio No IP
Programación C/C++
JavierJV 6 5,221 Ú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 8,880 Ú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,067 Último mensaje 25 Abril 2015, 02:24 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines