三层交换实现VLAN间路由配置方法
三层交换实现VLAN 间路由,下面是我带来的三层交换实现VLAN 间路由的方法,希望对你有帮助!
1 实验目的
(1) 理解三层交换的概念
(2) 配置三层交换
2 实验拓扑
实验拓扑图
3 实验步骤
步骤1:在S1 上划分VLAN
S1(config)#vlan 2
S1(config-vlan)#exit
S1(config)#int f0/5
S1(config-if)#switchport mode access
S1(config-if)#switchport access vlan 1
S1(config-if)#int f0/6
S1(config-if)#switchport mode access
S1(config-if)#switchport access vlan 2
步骤2:配置三层交换
S1(config)#ip routing
//以上开启S1 的路由功能,这时S1 就启用了三层功能。
S1(config)#int vlan 1
S1(config-if)#no shutdown
S1(config-if)#ip address 172161254 2552552550
S1(config)#int vlan 2
S1(config-if)#no shutdown
S1(config-if)#ip address 172162254 2552552550
//在vlan 接口上配置IP 地址即可,VLAN 1 接口上的地址就是PC1 的'网关了,VLAN 2 接口
上的地址就是PC2 的网关了。
注意事项:
要在三层交换机上启用路由功能,还需要启用CEF(命令为:ip cef),不过这是默认值。和路由器一样,三层交换机上同样可以运行路由协议。
4 实验调试
(1) 检查S1 上的路由表
S1#show ip route
1721600/24 is subnetted, 2 subnets
C 1721610 is directly connected, Vlan1
C 1721620 is directly connected, Vlan2
//和路由器一样,三层交换机上也有路由表。
(2) 测试PC1 和PC2 间的通信
在PC1 和PC2 上配置IP 地址和网关,PC1 的网关指向:17161254, PC2 的网关指向:
17 162254。测试PC1 和PC2 的通信。注意:如果计算机有两个网卡,请去掉另一网卡上设置的网关。
;通过NuGet包管理器获取依赖库 CefSharpWinForms
一、支持跨域请求设置
二、winform/wpf调用Vue方法
Vue接收事件
mainjs
View/Indexvue
mounted() {
//接收winform 参数
this$EventBus$on("winformEvent", (msg) => {
//alert("接收到了消息:" + msg);
});
}
三、Vue调用Winfrom方法
前端调用winform方法
这个浏览器可能有点不好用,你可以用别的浏览器,例如QQ浏览器就不错,功能很好用。
它采用全新架构并针对IE内核做了全面优化。瞬间开启的超快体验,可以瞬间开启20多个网页。灵动轻逸的全新设计,可以智能更换皮肤,有利于保护你的眼睛。更有强大的安全保障。它能有效的屏蔽有害网站,保护你的上网安全。
开始
首先,根据自身所使用的开发平台,可以去 这里 下载对应的发布版本。针对这个教程,我们需要下载1750或者更新的版本。当前支持的平台有Windows, Linux和Mac OS X。每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源。您可以通过包含在里边的 REDMEtxt 文件或者在Wiki上GeneralUsage 中的 Getting Started,了解每个发布版本的具体内容和细节。
编译发布版本中的项目
以CEF发布版本为基础开发的应用程序可以使用标准的平台编译工具进行编译执行。包括 Windows 平台下的 Visual Studio, Mac OS X 平台下的 Xcode, 以及 Linux 平台下的 gcc/make。针对平台的不同,项目的编译过程也有些许的不同和要求。
Windows
Windows 平台下编译 Cefsimple 步骤:
1 用对应的 Visual Studio 版本打开项目解决方案。举个例子,如果你安装的是 Visual Studio 2010, 那么,打开的就是 cesimple2010sln。
2 如果你下载的是 x64版本,请确保你选择的是 x64的开发平台。
3 开始编译。
4 如果编译通过,那么,在当前解决方案的目录下,将出现“out/Debug”(或者 “out/Release”)文件夹。
5 执行文件夹下 cefsimpleexe, 确保能正确运行。
加载一个自定义URL
cefsimple项目中默认加载的URL是 googlecom,当然,你也可以用自定义的 URL 去替代它,最方便的就是通过命令行搞定。
# Load the local file “c:\example\examplehtml”
cefsimpleexe --url=file://c:/example/examplehtml
除了命令行的方法,也可以通过直接修改在 cefsimple/simplecpp 文件中的代码,达到你的目的。
# Load the local file “c:\example\examplehtml”
…
if (urlempty())
url = file://c:/example/examplehtml;
应用程序组成
所有的 CEF 应用程序都有一下主要组成部分:
1 CEF 的动态链接库 。(在 Windows 平台下就是 libcefdll)
2 支持库。(ICU, FFMPEG等)
3 资源。(html/js/css, strings等)
4 客户端执行文件。(本教程中就是 cefsimpleexe)
要点(必看)
1 CEF 使用的是多进程。应用程序主进程是浏览器进程,而其他子进程是由 renderer, plugins, GPU等创建。
2 在 Windows 和 Linux 平台下的执行文件可以被主进程和子进程使用。
3 CEF 中所有进程都可以是多线程的。CEF提供了许多功能和接口在不同的线程中传递任务。
4 一些回调方法和函数只能在特定的进程或者线程中使用。在你第一次使用新的回调方法或者函数之前,请确保你已经阅读了 API 头文件中源码,看使用要求。
流程分析
cefsimple 应用程序首先初始化CEF,然后创建了一个简单的d出浏览器窗口。当关闭了所有的浏览器窗口,应用程序就会结束。程序执行流程如下:
1 系统执行入口点函数(main or wWinMain),并创建浏览器进程。
2 入口点函数:
1 创建能够处理进程级别的回调方法的 SimpleApp 实例。
2 初始化 CEF,进入 CEF 消息循环。
3 初始化 CEF 之后,调用 SimpleApp::OnContextInitialized() 。这个方法中:
1 创建单例的 SimpleHandler 。
2 由 CefBrowserHost::CreateBrowsersync() 方法创建一个浏览器窗口。
4 所有的浏览器共享 SimpleHandler 实例, 此实例能定制浏览器行为、处理浏览器相关回调方法(life span, loading state, title display等)。
5 当一个浏览器窗口关闭的时候,调用 SimpleHandler::OnBeforeClose() 。当所有的浏览器窗口全部关闭时,OnBeforeClose() 函数就会执行跳出 CEF 消息循环的行为,退出应用程序。
入口点函数
程序的运行开始于浏览器进程中的入口点函数。这个函数会初始化 CEF 以及所有跟 *** 作系统有关的对象。
Windows
#include <windowsh>
#include "cefsimple/simple_apph"
#include "include/cef_sandbox_winh"
// Set to 0 to disable sandbox support
#define CEF_ENABLE_SANDBOX 1
#if CEF_ENABLE_SANDBOX
// The cef_sandboxlib static library is currently built with VS2010 It may not
// link successfully with other VS versions
#pragma comment(lib, "cef_sandboxlib")
#endif
// Entry point function for all processes
int APIENTRY wWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow) {
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
void sandbox_info = NULL;
#if CEF_ENABLE_SANDBOX
// Manage the life span of the sandbox information object This is necessary
// for sandbox support on Windows See cef_sandbox_winh for complete details
CefScopedSandboxInfo scoped_sandbox;
sandbox_info = scoped_sandboxsandbox_info();
#endif
// Provide CEF with command-line arguments
CefMainArgs main_args(hInstance);
// SimpleApp implements application-level callbacks It will create the first
// browser instance in OnContextInitialized() after CEF has initialized
CefRefPtr<SimpleApp> app(new SimpleApp);
// CEF applications have multiple sub-processes (render, plugin, GPU, etc)
// that share the same executable This function checks the command-line and,
// if this is a sub-process, executes the appropriate logic
int exit_code = CefExecuteProcess(main_args, appget(), sandbox_info);
if (exit_code >= 0) {
// The sub-process has completed so return here
return exit_code;
}
// Specify CEF global settings here
CefSettings settings;
#if !CEF_ENABLE_SANDBOX
settingsno_sandbox = true;
#endif
// Initialize CEF
CefInitialize(main_args, settings, appget(), sandbox_info);
// Run the CEF message loop This will block until CefQuitMessageLoop() is
// called
CefRunMessageLoop();
// Shut down CEF
CefShutdown();
return 0;
}
SimpleApp
SimpleApp 负责处理进程级别的回调方法。它会曝露出一些在多进程中共享或者被特定进程使用的接口和方法。CefBrowserProcessHandler 接口,在浏览器进程中调用。还有一个被分离出 CefBrowserProcessHandler 接口(例子项目没有展示)只会在渲染进程中被调用。由于 CefBrowserProcessHandler 不光实现了 CefApp, 同时还有 CefBrowserProcessHandler,所以它的返回值必须是[this]。
// simple_apph
#include "include/cef_apph"
class SimpleApp : public CefApp,
public CefBrowserProcessHandler {
public:
SimpleApp();
// CefApp methods:
virtual CefRefPtr<CefBrowserProcessHandler> GetBrowserProcessHandler()
OVERRIDE { return this; }
// CefBrowserProcessHandler methods:
virtual void OnContextInitialized() OVERRIDE;
private:
// Include the default reference counting implementation
IMPLEMENT_REFCOUNTING(SimpleApp);
};
// simple_appcpp
#include "cefsimple/simple_apph"
#include <string>
#include "cefsimple/simple_handlerh"
#include "cefsimple/utilh"
#include "include/cef_browserh"
#include "include/cef_command_lineh"
SimpleApp::SimpleApp() {
}
void SimpleApp::OnContextInitialized() {
REQUIRE_UI_THREAD();
// Information used when creating the native window
CefWindowInfo window_info;
#if defined(OS_WIN)
// On Windows we need to specify certain flags that will be passed to
// CreateWindowEx()
window_infoSetAsPopup(NULL, "cefsimple");
#endif
// SimpleHandler implements browser-level callbacks
CefRefPtr<SimpleHandler> handler(new SimpleHandler());
// Specify CEF browser settings here
CefBrowserSettings browser_settings;
std::string url;
// Check if a "--url=" value was provided via the command-line If so, use
// that instead of the default URL
CefRefPtr<CefCommandLine> command_line =
CefCommandLine::GetGlobalCommandLine();
url = command_line->GetSwitchValue("url");
if (urlempty())
url = ">
以上就是关于三层交换实现VLAN间路由配置方法全部的内容,包括:三层交换实现VLAN间路由配置方法、CefSharp.WinForms 使用手册(跨域请求、调用Vue方法)、如何开放cef3浏览器下载功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)