⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame.cpp

📁 对以太帧进行手动封装
💻 CPP
字号:
#include "framehandler.h"
#include <iostream>
#include <cstdlib>
#include <cstring>

using std::cout;
using std::endl;

inline void printErrorMessage();  // 输出错误提示
inline void printPersonalInfo();  // 输出个人信息


// 函数入口
int main(int argc, char* argv[])
{
	// 输出学号、姓名等信息
	printPersonalInfo();
	
	// 检查参数个数,如果不正确则输出错误提示,并退出程序
	if (argc != 3)
	{
		printErrorMessage();
		system("pause");
		exit(EXIT_FAILURE);
	}

	// 检查第二个参数是否为-u或者-p
	if (0 == strcmp(argv[1], "-u") || 0 == strcmp(argv[1], "-U"))
	{
		FrameHandler frameHandler(false, argv[2]);
		frameHandler.unpackage();
		system("pause");
	}
	else if (0 == strcmp(argv[1], "-p") || 0 == strcmp(argv[1], "-P"))
	{
		FrameHandler frameHandler(true, argv[2]);
		frameHandler.package();
		system("pause");
	}
	else  // 如果参数既不是“-u”也不是“-p”,则输出错误信息并退出程序
	{
		printErrorMessage();
		system("pause");
		exit(EXIT_FAILURE);
	}

	return 0;
}


// 输出错误提示,提示用户命令的参数格式不正确,并给出正确的提示
void printErrorMessage()
{
	cout << "对不起,程序的参数不正确!请在命令行中按以下格式运行程序:" << endl << endl;
	cout << "1.帧解析:\n\tFrameHandler -u filePath(待解析的文件的路径)" << endl;
	cout << "2.帧封装:\n\tFrameHandler -p filePath(存放封装后的帧的文件路径)" << endl << endl;
}

// 输出个人信息
void printPersonalInfo()
{
	cout << "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n";
	cout << "*                      姓名:刘洪涛                       *\n";
	cout << "*                      学号:2120080354                   *\n";
	cout << "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -