Читать курсовая по Отсутствует: "Визуализация сообщений модема Sierra MC7710 для программы WireShark" Страница 10
Филатов А. В., 2013 г. *
************************************************************************/
#ifndef QT_H
#define QT_H
#include
#include "ui_qt.h"
#include
#include
#include
#include
#include qt : public QMainWindow
{_OBJECT:(QWidget *parent = 0, Qt::WFlags flags = 0);
~qt();:::qtClass ui;
//Создание действий
QAction *exitAction;//Действие для закрытия приложения
QAction *openAction;//Действие для открытия файла
QMenu *fileMenu;
//Объявление слотов,которые будут открывать и завершать программу
private slots:open();//Слот для открытия файла quit();//Слот для закрытия приложения
};
#endif // QT_H
Листинг П1.4
/*************************************************************************Файл main.cpp. *
*Отображение основного окна приложения. *
* Автор : Филатов А. В., 2013 г. *
************************************************************************/
#include "qt.h"
#include main(int argc, char *argv[])
{a(argc, argv);w;.show();a.exec();
}
Листинг плагина WireShark
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include
#define FOO_PORT 35000
/* Номер UDP порта, на котором мы предполагаем будет находится FOO траффик. */int proto_foo = -1;
/* При регистрации протокола переменная затрется идентификатором протокола. */gint ett_foo = -1;int type = -1;//Байт отвечающий за длинну поля typeint key = -1;int iname = -1;int summary = -1;sT = 0;//длинна поля type, полученная из пакетаsK = 0;sN = 0;sS = 0;proto_register_foo(void)
{hf_register_info hf[] = {
{ &type,
{ "Type", "foo.hdr.type",//Тип элемента_STRING, BASE_NONE,, 0x0,, HFILL }
},
{ &key,
{ "Key", "foo.hdr.key",//Ключ элемента_STRING, BASE_NONE,, 0x0,, HFILL }
},
{ &iname,
{ "Item name", "foo.hdr.itemname",//Имя элемента_STRING, BASE_NONE,, 0x0,, HFILL }
},
{ &summary,
{ "Summary", "foo.hdr.summary",//Содержание элемента_STRING, BASE_NONE,, 0x0,, HFILL }
}
};gint *ett[] = { &ett_foo };_foo = proto_register_protocol (
"FOO Protocol", /* полное имя */
"FOO", /* короткое имя */
"foo" /* аббревиатура */
);_register_field_array(proto_foo, hf, array_length(hf));_register_subtree_array(ett, array_length(ett));
}void dissect_foo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{_set_str(pinfo->cinfo, COL_PROTOCOL, "FOO");_clear(pinfo->cinfo, COL_INFO);(tree) {_item *ti = NULL;_tree *foo_tree = NULL;= proto_tree_add_item(tree, proto_foo, tvb, 0, -1, FALSE);_tree = proto_item_add_subtree(ti, ett_foo);
sT = tvb_get_guint8(tvb, 0);//Извлекаем из пакета длину поля type
sK = tvb_get_guint8(tvb, 1);= tvb_get_guint8(tvb, 2);= tvb_get_guint8(tvb, 3);_tree_add_item(foo_tree, type, tvb, 4, sT, FALSE);_tree_add_item(foo_tree, key, tvb, sT + 4, sK,FALSE);_tree_add_item(foo_tree, iname, tvb, sT + 4 + sK, sN, FALSE);_tree_add_item(foo_tree, summary, tvb, sT + 4 + sK + sN, sS, FALSE);
}
}proto_reg_handoff_foo(void)
{dissector_handle_t foo_handle;_handle = create_dissector_handle(dissect_foo, proto_foo);_add_uint("udp.port", FOO_PORT, foo_handle);
}
Листинг программы отправляющий пакеты по придуманному протоколу
«FOO».Предварительно установить адаптер замыкания на себя
// SocketClient.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
#include
#include
#include
#include
#include namespace std;
#import "C:\\Program Files (x86)\\Qualcomm\\QXDM\\Bin\\CoreAutomation.dll"
#define DEFAULT_PORT 35000//Порт FOOmain(int argc, char **argv) {> fname;LoadItemStore( fname );(hISF == 0xFFFFFFFF)
{
_tprintf_s( _T("Error: Failed to load input ISF: %s\n"), fname );-1;
}Buffer[8192];*server_name= "192.168.43.23";server_addr[20];short port = DEFAULT_PORT;retval, loopflag=0;int addr;socket_type = SOCK_DGRAM;sockaddr_in server;hostent *hp;wsaData;conn_socket;foobuf[210];itemCount = pISF->GetItemCount( hISF );((retval = WSAStartup(0x202,&wsaData)) != 0) {//инициализация библиотеки Winsock(stderr,"WSAStartup failed with error %d\n",retval);();-1;
}(isalpha(server_name[0]))
{ /* server address is a name */= gethostbyname(server_name);
}
{ /* Convert nnn.nnn address to a usable one */= inet_addr(server_name);= gethostbyaddr((char *)&addr,4,AF_INET);
}(hp == NULL )
{(stderr,"Client: Cannot resolve address [%s]: Error %d\n",_name,WSAGetLastError());();(1);
}
//
// Copy the resolved information into the sockaddr_in structure
//(&server,0,sizeof(server));(&(server.sin_addr),hp->h_addr,hp->h_length);.sin_family = hp->h_addrtype;.sin_port = htons(port);_socket = socket(AF_INET,socket_type,0); /* Open a socket */(conn_socket
Похожие работы
| Тема: Визуализация контактных преобразований в среде Visual C++ 6. |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Визуализация в ГИС при наличии пространственных ограничений |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Визуализация контактных преобразований в среде Visual C++ 6 |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Визуализация полученной информации |
| Предмет/Тип: История техники (Реферат) |
| Тема: Визуализация генов: методы и проблемы |
| Предмет/Тип: Другое (Реферат) |
Интересная статья: Быстрое написание курсовой работы

(Назад)
(Cкачать работу)