тестване на комуникация на сокет офлайн като симулация

Всеки път, когато трябва да тествам приложението си, което всъщност представлява някакъв вид комуникация чрез сокети с външни устройства, самото устройство трябва да е достъпно и свързано.

Бих искал да попитам дали има начин да се направи тестването офлайн в някакъв режим на симулация?

Например пренасочване на комуникацията на сокета към някакъв вид съхранен файл. А самият файл е лог на предишна сесия с реалното устройство, съхранено в подходяща структура. Разбира се, може да се симулира само записана сесия, но това вече би помогнало много.

Благодаря!


person user387184    schedule 25.09.2011    source източник
comment
Защо не поставите отдалеченото приложение (сървър) на същата машина, където се намира клиентът? След това и двамата могат да комуникират локално.   -  person Nabeel    schedule 25.09.2011
comment
тъй като няма отдалечено приложение, приложението ми комуникира с външно хардуерно устройство...   -  person user387184    schedule 25.09.2011


Отговори (2)


Трябва да погледнете netcat. Ако имате запис на вашата „сесия“ във файл, можете да използвате nc, за да го „възпроизведете“ на сокет с нещо като:

nc -l -p port_number < your_file

След това можете да се свържете с този номер на порт с telnet и ще видите данните за сесията, които влизат.

(Можете да го направите и по обратния начин, т.е. nc да се свърже с вашето приложение и да възпроизведе сесията.)

person Mat    schedule 25.09.2011
comment
Много благодаря. Прочетох малко...но не съм сигурен точно какво да инсталирам сега. Има ли някаква разлика между nc / ncat (част от nmap)? - person user387184; 25.09.2011
comment
Те не са един и същ инструмент. ncat изглежда има повече функции. Опитайте и двете :-) - person Mat; 25.09.2011

Не познавам iphone, но имам локален клиент (или сървър) приложение. като симулатор е много често срещан на други платформи. Това е особено полезно, ако приложението за партньор също е в процес на разработка - наличието на симулатор често показва грешки в протокола и в двата края (както и в симулатора:).

Като се има предвид спецификация на приложение, която включва протокола, но все още няма партньор, обикновено първо започвам работа по симулатора - това ми дава време да придобия опит с протокола по некритичен, недоставим начин, докато клиентът все още се захваща промени в основния потребителски интерфейс на приложението :)

Rgds, Мартин

person Martin James    schedule 25.09.2011