2010-09-14 3 views
5

Я немного сеть n00b, поэтому, пожалуйста, будьте нежными и объясните вещи действительно, ДЕЙСТВИТЕЛЬНО фиктивным способом (мне кажется, что каждый раз, когда речь заходит о связанных с сетью вещах, люди начинают говорить совершенно другим языком). Я довольно опытный программист на C#, но мне не хватает навыков, когда дело доходит до общения между машинами.Стыковка соединения TCP/IP с C#

Сценарий: Я работаю с продуктом, который взаимодействует с другими устройствами через tcp/ip. Можно ли создать фиктивную программу, которая действует как ta tcp/ip-соединение (локально на моей машине), поэтому я могу подключить к ней свою другую программу, установив свой IP-адрес (и порт), а затем возвратите все, что насмехается/данные тестирования, которые я хочу?

ответ

0

Честно говоря, я не вижу смысла «насмехаться» над чем-либо здесь, просто использую надлежащее соединение TCP/IP, потому что, очевидно, вы можете отправлять данные через TCP/IP между двумя различными приложениями на одном и том же IP-адресе.

Заканчивать этот пример:

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

+0

Может быть, @erikric не в состоянии запустить локальный экземпляр удаленной системы, с которой которой он пытается общаться, поэтому в целях развития в основном чтобы имитировать («макет») ответы, которые он ожидал получить от устройств, которые он упоминает. –

+0

правда, но он точно сказал, что использует свою локальную машину для разработки, поэтому я не могу представить себе сценарий, где проблема с установкой локального «отправителя» и локального «приемника» была бы проблемой. Он мог даже изменить файл hist 'hosts', чтобы переназначить вызовы на IP реального сервера в его экземпляр 127.0.0.1. – rochal

+1

Я не уверен, что я следую за @rochal, но я подозреваю, что у нас могут быть разные интерпретации вопроса, который он задавал. Я подошел к нему с того направления, которое OP не рассматривал, когда он насмехался над самим соединением, просто данные, возвращенные для имитации подключения к удаленному устройству, и его целью было разработать серверный процесс, который будет выполняться локально на той же машине, что и его клиент обработать. Я мог ошибаться, хотя :) –

0

Да: вы можете настроить TCP-соединение на программу, запущенную на вашей собственной машине. Имя хоста, которое вы должны использовать, - localhost, или IP-адрес 127.0.0.1: см. Также Loopback (Virtual Network Interface).

0

Я делал это раньше. Я создал набор инструментов для Дразнящий различных технологий, которые можно скачать по адресу:

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

Это позволяет настроить данные для отправки и получения. Возможно, вам придется немного подкорректировать его, но основной материал уже существует.

Я считаю, что вас интересует TcpReceiveMiniServer.

Вот мини-образец:

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 
    } 
Смежные вопросы