Se conoce el host conexión de socket

Estoy tratando de trabajar con esta biblioteca para las conexiones telnet. He llamado a la función correctamente y se ejecuta el código de abajo, pero no da el siguiente error:

System.Net.Sockets.SocketException was unhandled
  HResult=-2147467259
  Message=No such host is known
  Source=System
  ErrorCode=11001
  NativeErrorCode=11001
  StackTrace:
       at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
       at MinimalisticTelnet.TelnetConnection..ctor(String Hostname, Int32 Port) in c:\users\kylec\documents\visual studio 2010\Projects\Mail Server Capture\Mail Server Capture\TelnetInterface.cs:line 36
       at Mail_Server_Capture.Form1.btn_MailGet_Click(Object sender, EventArgs e) in c:\users\kylec\documents\visual studio 2010\Projects\Mail Server Capture\Mail Server Capture\Form1.cs:line 55
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at Mail_Server_Capture.Program.Main() in c:\users\kylec\documents\visual studio 2010\Projects\Mail Server Capture\Mail Server Capture\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

Código:

public TelnetConnection(string Hostname, int Port)
        {
            tcpSocket = new TcpClient(Hostname, Port);

        }

He buscado aquí en busca de este problema y parece bastante común. Algunas personas están diciendo que el host es realmente inalcanzable (este no es el caso), es una de Microsoft .NET problema o es sólo una excepción que puede ser ignorada. Me parece que no puede conseguir el programa para pasar de ella, aunque si es algo que puede ser ignorada. También me parece que no puede encontrar ninguna solución en cuanto a la fijación de la misma. Estoy bastante perdido en esto, cualquier ayuda se agradece.

  • ¿Cuál es el prefijo en el hostname que se están dando?
  • Funciona con una dirección IP insread de nombre de host?
  • prefijo? Me había pasado algo como e32.co.us.ibm.com
  • No puedo probar que como mi código resuelve estos mx direcciones a partir de un nombre de dominio.
  • uso de comandos de la consola: «ping e32.co.us.ibm.com». Se le mostrará la IP
  • Tengo la Ip como esta, 32.97.110.150. Pero mi código que pasa para que la función no resuelve la ip del dominio, se resuelve el mx de las direcciones de dominio de un dominio. Puedo hacer todo el proceso de principio a fin desde el cmd y funciona bien. Pero no puedo conseguir mi código para hacerlo.
  • Lo siento, no ser corregido, yo era capaz de editar los datos de entrar en la función utilizando un punto de interrupción y tengo el mismo resultado con una dirección ip en lugar de un espacio de nombre.
  • ¿La prueba de la conexión smtp? A pesar de que usted escribió en los que probaron de todo, desde el cmd no me vea exactamente los comandos. Para utilizar telnet de Windows el comando para verificar que la conexión al puerto 25 (smtp). Se explica aquí: technet.microsoft.com/en-us/library/aa995718(v=exchg.65).aspx
  • Y tratar de mxtoolbox.com para verificar que el registro mx se ha resuelto correctamente.
  • Sí que he comprobado mediante telnet en el cmd. Y sí, de acuerdo a mxtoolbox, el dominio de ejemplo que he publicado es válido para ibm.com
  • Puede ser un simple espacio al final de la dirección de host como ‘192.168.1.119 ‘

InformationsquelleAutor Kyle | 2014-05-30

1 Kommentar

  1. 4

    La solución fue algo bastante fácil y pasa por alto. Primero me di cuenta de que la tcpclient prefiere una dirección ip y un nombre. Luego también me di cuenta de que a veces hay espacios adicionales en cualquiera de los lados del nombre de dominio. Así que he usado el código de abajo, a la franja de los personajes y cambiar a una ip.

    string.Trim();
    //Telnet Start
    IPHostEntry hostInfo = Dns.Resolve(hostnamehere);
    • Sólo una nota que usted necesita para excavar en el IPHostEntry para obtener la IP real: hostInfo.AddressList[0].ToString()
    • Dns.Resolve() es ahora obsoleto! La mejor opción es utilizar Dns.GetHostEntry()

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea