資源簡介
sokit 是一款開源免費的 TCP / UDP 測試(調(diào)試)工具, 可以用來接收,發(fā)送或轉(zhuǎn)發(fā)TCP/UDP數(shù)據(jù)包。 本程序可以工作在三種模式: 服務(wù)器模式,用來監(jiān)聽本地端口,接收外部數(shù)據(jù)包,并且可以回復(fù)自定義數(shù)據(jù); 客戶端模式,用來連接服務(wù)器,發(fā)送自定義數(shù)據(jù)包,并接收遠(yuǎn)程回復(fù)數(shù)據(jù); 轉(zhuǎn)發(fā)器模式,用來監(jiān)聽本地端口,將接收到的數(shù)據(jù)包發(fā)送給指定的遠(yuǎn)程服務(wù)器,也可以在轉(zhuǎn)發(fā)數(shù)據(jù)流中插入自定義數(shù)據(jù)向雙發(fā)發(fā)送; 支持發(fā)送ascii字符串?dāng)?shù)據(jù),以及十六進(jìn)制表示的原始字節(jié),單次發(fā)送的字符數(shù)目沒有限制;收到的數(shù)據(jù)會同時以這兩種形式顯示。 支持收發(fā)日志文件。
發(fā)送hex時數(shù)據(jù)被[]包裹,例如[02 04 05 03]

代碼片段和文件信息
#include?“toolkit.h“
#include?“setting.h“
#include?“baseform.h“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?PROP_EDIT?“edit“
#define?PROP_DIRT?“dirt“
#define?PROP_TARG?“targ“
baseForm::baseForm(QWidget*?p?Qt::WindowFlags?f)
:QWidget(p?f)m_cntRecv(0)m_cntSend(0)m_labRecv(0)m_labSend(0)m_cnlist(0)
{
}
baseForm::~baseForm()
{
}
bool?baseForm::init()
{
if?(!initForm()?||?!initHotkeys())
return?false;
initConfig();
m_logger.setProperty(SET_SEC_DIR?property(SET_SEC_DIR).toString());
return?true;
}
void?baseForm::initCounter(QLabel*?r?QLabel*?s)
{
m_labRecv?=?r;
m_labSend?=?s;
}
void?baseForm::initLogger(QCheckBox*?w?QToolButton*?c?QTreeWidget*?o?QPlainTextEdit*?d)
{
m_logger.init(o?w?d);
connect(c?SIGNAL(released())?this?SLOT(clear()));
connect(&m_logger?SIGNAL(clearLog())?this?SLOT(clear()));
bindFocus(o?Qt::Key_F3);
QShortcut*?wr?=?new?QShortcut(QKeySequence(Qt::CTRL?+?Qt::Key_W)?this);
QShortcut*?cl?=?new?QShortcut(QKeySequence(Qt::CTRL?+?Qt::Key_D)?this);
QShortcut*?sl?=?new?QShortcut(QKeySequence(Qt::Key_F4)?this);
sl->setProperty(PROP_TARG?qVariantFromValue((void*)d));
connect(wr?SIGNAL(activated())?w?SLOT(click()));
connect(sl?SIGNAL(activated())?this?SLOT(hotOutput()));
connect(cl?SIGNAL(activated())?this?SLOT(clear()));
connect(this?SIGNAL(output(const?QString&))?&m_logger?SLOT(output(const?QString&)));
connect(this?SIGNAL(output(const?QString&?const?char*?quint32))?&m_logger?SLOT(output(const?QString&?const?char*?quint32)));
}
void?baseForm::initLister(QToolButton*?a?QToolButton*?k?QListWidget*?l)
{
m_cnlist?=?l;
QShortcut*?sk?=?new?QShortcut(QKeySequence(Qt::CTRL?+?Qt::Key_K)?this);
QShortcut*?sa?=?new?QShortcut(QKeySequence(Qt::ALT??+?Qt::Key_A)?this);
connect(sk?SIGNAL(activated())?this?SLOT(kill()));
connect(sa?SIGNAL(activated())?m_cnlist?SLOT(selectAll()));
connect(k?SIGNAL(released())?this?SLOT(kill()));
connect(a?SIGNAL(released())?m_cnlist?SLOT(selectAll()));
bindFocus(m_cnlist?Qt::Key_F2);
}
void?baseForm::bindBuffer(qint32?id?QLineEdit*?e?QToolButton*?s?QComboBox*?d)
{
s->setProperty(PROP_EDIT?qVariantFromValue((void*)e));
s->setProperty(PROP_DIRT?qVariantFromValue((void*)d));
connect(s?SIGNAL(released())?this?SLOT(send()));
bindClick(s?Qt::Key_0?+?id?+?Qt::CTRL);
bindFocus(e?Qt::Key_0?+?id?+?Qt::ALT);
bindFocus(d?Qt::Key_0?+?id?+?Qt::CTRL?+?Qt::SHIFT);
}
void?baseForm::bindFocus(QWidget*?w?qint32?k)
{
QShortcut*?s?=?new?QShortcut(QKeySequence(k)?this);
s->setProperty(PROP_TARG?qVariantFromValue((void*)w));
connect(s?SIGNAL(activated())?this?SLOT(focus()));
}
void?baseForm::bindClick(QAbstractButton*?b?qint32?k)
{
QShortcut*?s?=?ne
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-05-08?14:57??sokit-master\
?????文件??????????15??2015-05-08?14:57??sokit-master\.gitignore
?????文件???????35821??2015-05-08?14:57??sokit-master\LICENSE
?????文件?????????195??2015-05-08?14:57??sokit-master\README.md
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\general\
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\general\qmake\
?????文件????????4081??2015-05-08?14:57??sokit-master\build\general\qmake\sokit.pro
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\linux86\
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\linux86\qtcreator\
?????文件????????4047??2015-05-08?14:57??sokit-master\build\linux86\qtcreator\sokit.pro
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\win32\
?????目錄???????????0??2015-05-08?14:57??sokit-master\build\win32\vs2010\
?????文件?????????505??2015-05-08?14:57??sokit-master\build\win32\vs2010\Qt4VSPropertySheet.props
?????文件????????1022??2015-05-08?14:57??sokit-master\build\win32\vs2010\sokit.sln
?????文件???????42652??2015-05-08?14:57??sokit-master\build\win32\vs2010\sokit.vcxproj
?????文件????????9317??2015-05-08?14:57??sokit-master\build\win32\vs2010\sokit.vcxproj.filters
?????目錄???????????0??2015-05-08?14:57??sokit-master\doc\
?????目錄???????????0??2015-05-08?14:57??sokit-master\doc\sokit\
?????文件?????????581??2015-05-08?14:57??sokit-master\doc\sokit\change.log
?????文件???????36941??2015-05-08?14:57??sokit-master\doc\sokit\license.gpl3
?????文件?????????157??2015-05-08?14:57??sokit-master\doc\sokit\readme.txt
?????目錄???????????0??2015-05-08?14:57??sokit-master\src\
?????目錄???????????0??2015-05-08?14:57??sokit-master\src\sokit\
?????文件????????5392??2015-05-08?14:57??sokit-master\src\sokit\ba
?????文件????????1761??2015-05-08?14:57??sokit-master\src\sokit\ba
?????文件????????3882??2015-05-08?14:57??sokit-master\src\sokit\clientform.cpp
?????文件?????????671??2015-05-08?14:57??sokit-master\src\sokit\clientform.h
?????文件???????18096??2015-05-08?14:57??sokit-master\src\sokit\clientform.ui
?????文件????????5077??2015-05-08?14:57??sokit-master\src\sokit\clientskt.cpp
?????文件????????1902??2015-05-08?14:57??sokit-master\src\sokit\clientskt.h
............此處省略29個文件信息
評論
共有 條評論