Читать курсовая по Отсутствует: "Визуализация сообщений модема Sierra MC7710 для программы WireShark" Страница 10

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

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

Филатов А. В., 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


Интересная статья: Быстрое написание курсовой работы