2010-09-14 19 views
5

Soy un poco de una red n00b, así que sea gentil y explique las cosas de una manera REALMENTE fingida (me parece que cada vez que se trata de cosas relacionadas con la red, la gente comienza a hablar un idioma totalmente diferente). Soy un programador de C# bastante experimentado, pero me falta algo de habilidad cuando se trata de comunicación entre máquinas.Burlarse de una conexión TCP/IP con C#

El escenario es el siguiente: estoy trabajando con un producto que se comunica con otros dispositivos a través de tcp/ip. ¿Es posible hacer un programa ficticio que actúe como una conexión ta tcp/ip (localmente en mi máquina), para que pueda conectar mi otro programa estableciendo su dirección IP (y el puerto), y luego devolverle cualquier burla?/prueba los datos que quiero?

Respuesta

0

Para ser sincero, no veo el punto de 'burlarse' de nada aquí solo use la conexión TCP/IP adecuada, porque obviamente puede enviar los datos a través de TCP/IP entre 2 aplicaciones diferentes en la misma IP.

Salida este ejemplo:

http://www.codeproject.com/KB/IP/tcpclientserver.aspx

+0

Puede ser que @erikric no es capaz de ejecutar una instancia local del sistema remoto con el que el que está tratando de comunicarse, por lo que para fines de desarrollo es básicamente buscando simular ("burlarse") las respuestas que esperaría recibir de los dispositivos que menciona. –

+0

cierto, pero dijo precisamente que utiliza su máquina local para el desarrollo, por lo que no puedo imaginar el escenario donde establecer un "emisor" local y un "receptor" local sería un problema. Incluso podría modificar el archivo hist 'hosts' para reasignar llamadas a la IP del servidor real en su instancia 127.0.0.1. – rochal

+1

No estoy seguro de seguir a @rochal, pero sospecho que podemos tener diferentes interpretaciones de la pregunta que estaba haciendo. Me acerqué desde la dirección en que el OP no consideraba burlarse de la conexión en sí, solo los datos volvieron para simular una conexión a un dispositivo remoto, y su intención era desarrollar un proceso de servidor para ejecutar localmente en la misma máquina que su cliente proceso. Sin embargo, podría estar equivocado :) –

0

Sí: puede configurar una conexión TCP a un programa que se ejecute en su propia máquina. El nombre de host que debe utilizar es localhost, o la dirección IP es 127.0.0.1: consulte también Loopback (Virtual Network Interface).

0

he hecho esto antes. He creado un conjunto de herramientas para que imita varias tecnologías que se pueden descargar en:

http://www.codeproject.com/KB/biztalk/Excellence.aspx

Esto le permite configurar un conjunto de datos para ser enviados y recibidos. Puede que tengas que modificarlo un poco, pero las cosas principales ya están allí.

Creo que estás interesado en TcpReceiveMiniServer.

Aquí es un mini-muestra:

static void Main(string[] args) 
    { 
     TcpReceiveMiniServer server = new TcpReceiveMiniServer(8789); 
     server.Start(); 
     server.DataArrived += new TcpReceiveMiniServer.DataArrivedHandler(server_DataArrived); 
     Console.Read(); 
    } 

    static void server_DataArrived(object sender, DataArrivedEventArgs e) 
    { 
     // do something with e.Data 
    }