- [windows][frp]在Windows上安装和配置FRP的服务器端(frps)和客户端(frpc)
awonw
windowswindows运维网络安全网络协议
在Windows上安装和配置FRP(FastReverseProxy)的服务器端(frps)和客户端(frpc)通常涉及以下步骤:1.下载FRP首先,您需要从FRP的GitHub页面下载适用于Windows的FRP二进制文件。访问Releases·fatedier/frp·GitHub页面,选择适合您Windows系统的版本(32位或64位)并下载。2.解压文件下载完成后,解压文件到您选择的目录。
- 泷羽sec专题课笔记-- Linux作业--开机自启动方法以及破解
grrrr_1
笔记web安全网络
本笔记为泷羽sec《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。写在最前面的话,我们为什么要学习网络安全这门技术:维护国家安全防范网络攻击:网络安全威胁已成为国家安全的重要挑战。学习网络安全有助于识别和防范来自国内外的网络攻击,防
- PM2使用
使用进程管理器PM2PM2是一个为Node.js应用设计的、带有负载均衡功能的生产环境进程管理器。用它来管理npx执行的命令是最佳实践。优点:✅进程守护:程序崩溃后会自动重启。✅开机自启:可以配置,让服务器重启后自动运行你的服务。✅日志管理:自动分割和管理日志,方便查看。✅性能监控:可以监控CPU和内存占用。✅跨平台:在Linux,macOS和Windows上都能用。操作步骤:1.全局安装PM2如
- 【内网穿透】使用FRP实现内网与公网Linux/Ubuntu服务器穿透&项目部署&多项目穿透方案
宇宙核
服务器服务器网络运维
一、核心原理FRP通过公网服务器(frps)反向代理内网服务器(frpc)的服务,将内网端口映射到公网端口,实现穿透。二、准备工作公网服务器(假设IP:1.1.1.1)开放端口:7000(FRP服务端通信端口)、8080(映射后访问Vue的端口)。内网服务器运行Vue3项目(例如在localhost:3000)。域名(可选,若需域名访问需提前解析到公网IP)。三、具体步骤1.公网服务器部署FRP服
- 如何在 Ubuntu 22.04 上安装、配置、使用 Nginx
曹瑞曹瑞
软件配置ubuntunginx服务器
如何在Ubuntu22.04上安装、配置、使用Nginx?-阿里云开发者社区更新应用sudoaptupdatesudoaptupgrade检查必要依赖并安装sudoaptinstall-ycurlgnupg2ca-certificateslsb-release安装nginxsudoaptinstall-ynginx#启动nginxsudosystemctlstartnginx#开机自启sudosy
- 【QT常用技术讲解】任务栏图标+socket网络服务+开机自启动
前言首先看网络编程的定义:两个不同主机设备之间的进程通信。C/S(Client-Server)是早期非常典型的软件架构,C/S架构虽然简单,但却非常适用于桌面图形化的QT项目。本篇的QT项目是从真实的项目中简化出来,满足很多相似的场景:创建一个TCP服务,接收到消息后,通过多线程执行后台CMD命令行,并且自动把程序放到系统自启动目录中。覆盖到QT的知识点:任务栏托盘、右键菜单、TCP服务、多线程。
- SSH服务与rsync服务配置实战
SSH服务与rsync服务SSHssh服务,一种远程管理连接工具,在CentOS7系统中默认安装并开机自启的。SSH(SecureShell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。监听tcp的22号端口。软件包名称:openssh配置文件目录:/etc/ssh,sshd_config服务端配置文件;ssh_config客户端配置文件。客户端提供:ssh、scp、sft
- windows配置内网穿透
AI算法网奇
win/ubuntu运维服务器
目录dify访问:在Windows上配置frpcdify访问:VECTOR_STORE=milvusMILVUS_URL=http://host.docker.internal:19530#取决于Milvus启动位置在Windows上配置frpc下载地址:https://github.com/fatedier/frp/releases解压后,编辑frpc.ini:下载版本:frp_0.62.1_w
- windows下jar包配置为开机自启动
在jar包目录新建一个start.bat文件,然后写入启动命令java-jarX.jar2.仍然在此目录,新建start.vbs文件,然后写入一下命令,命令最后一个0是隐藏窗口运行createobject("wscript.shell").run"D:\start.bat",03.创建run.vbs的快捷方式,移动到开机自启动目录下:C:\ProgramData\Microsoft\Windows
- Ubuntu重装系统后ssh连接不上(遇到 “Unit ssh.service not found“ 错误)
longze_7
ubuntusshlinux
重装系统时不知道为什么SSH服务未安装,以下是解决方案:先检查ssh服务安装没安装sudosystemctlstatusssh#Ubuntu/Debian如果systemctl找不到服务,可能是SSH未安装:sudoaptupdatesudoaptinstallopenssh-serversudosystemctlstartssh#启动服务sudosystemctlenablessh#开机自启安装
- Ubuntu 25.04安装搜狗输入法
不喝水的鱼儿
ubuntulinux运维
0x00安装思路1.卸载ibus和fcitx5。#更新系统软件包sudoaptupdate#卸载Fcitx5和IBus(如果存在)sudoaptremove--purgefcitx5*ibus*#清理系统残留sudoaptautoremove&&sudoaptautoclean2.安装fcitx4。#安装Fcitx4输入法框架sudoaptinstallfcitx#设置Fcitx开机自启动sudo
- 【Linux】定时任务 Crontab 与时间同步服务器
敖云岚
linux运维服务器
目录一、用户定时任务的创建与使用1.1用户定时任务的使用技巧1.2管理员对用户定时任务的管理1.3用户黑白名单的管理一、用户定时任务的创建与使用1.1用户定时任务的使用技巧第一步:查看服务基本信息systemctlstatuscrond.service//查看周期性计划任务的服务状态,runningsystemctlenable--nowcrond//设置周期性计划任务crond为开机自启动,并且
- Systemd 服务配置完整指南
星梦客
Linux问题记录服务器网络linux
以下是整理后的Systemd服务配置教程,以您提供的frpc.service文件为例:1.创建服务文件在/etc/systemd/system/目录下创建服务配置文件(需root权限):sudonano/etc/systemd/system/frpc.service2.编写服务配置将以下内容粘贴到文件中(根据您的路径修改ExecStart):[Unit]Description=frpc#服务描述A
- 阿里云Ubuntu服务器上安装MySQL并配置远程连接
一条破秋裤
个人笔记adb
1.安装MySQL首先连接到你的Ubuntu服务器,然后执行:#更新软件包列表sudoaptupdate#安装MySQL服务器sudoaptinstallmysql-server#启动MySQL服务sudosystemctlstartmysql#设置MySQL开机自启sudosystemctlenablemysql#检查MySQL状态sudosystemctlstatusmysql2.配置MySQ
- 小米路由安装frpc
zngw
sshfrp
一、起因家里部署了Nas,在出租屋里直接使用frp访问外网服务器转发的是可以用,但是,流量得多贵啊,还有中间商赚带宽。于是想了一下,在出租屋的路由上部署frp客户端,使用xtcp协议,打洞直连,速度快还不需要流量。二、流程前提条件:一台公网frps服务器家里Nas,已经配置好SMB文件共享(端口445)、WebDav(端口80,可选端口443),其他自行发挥。出租屋解锁SSH的小米路由,我家是小米
- 后台服务启动前台Service(跨进程)
一只努力的菜鸟。
javaandroidandroidstudio
在开发中,很多时候我们会碰到在hmi里面做了页面布局,但是要求开机就显示。我们的Service是开机自启动的,但是hmi不是开机自启动。那么这个时候我们需要在hmi添加一个hmiService,用后台的Service拉起hmiService进而去显示View(这个View一般都为WindowManager,不依附Activity)上代码:前台Service(hmiService):1.首先创建一个
- Windows下运行Redis并设置为开机自启的服务
GalaXyyyyyyyyyyyyyy
后端windowsredis数据库
下载Redis-Windows点击redis-windows-7.4.0下载链接下载Redis解压之后得到如下文件右键install_redis.cmd文件,选择在记事本中编辑。将这里改为redis.windows.conf后保存,退出记事本,右键后选择以管理员身份运行。在任务管理器中能够查看到如下信息即算成功。
- Centos 离线部署(MQTT)EMOX脚本并设置开机自启
小高求学之路
centoslinux运维
文件结构install_emqx.sh#!/bin/bash#Filename:install_emqx.sh#Description:EMQX离线一键部署脚本(针对特殊目录结构)#检查root权限if[[$EUID-ne0]];thenecho"请使用root权限运行此脚本!"exit1fi#定义依赖包和安装路径DEP_RPM="./libaio-0.3.111-22.el10.x86_64.r
- Ubuntu 设置Nginx开机自启
shushei
nginx数据库运维
1.建立服务文件vim/usr/lib/systemd/system/nginx.serviceDescription=nginx-highperformancewebserverAfter=network.targetremote-fs.targetnss-lookup.target[Service]Type=forkingExecStart=/usr/local/nginx/sbin/ngin
- ubuntu下安装nginx服务器与设置开机自启动
黑傻傻
linuxnginxubuntu服务器
1、安装nginx服务器下载wgethttp://nginx.org/download/{version}.tar.gzversion对应nginx版本号比如nginx-1.8.1解压缩tar-zxvfnginx-1.8.1.tar.gz进入解压缩目录cdnginx-1.8.1/设置编译环境./configure--prefix=/usr/local/nginx编译sudomake安装sudoma
- win10下安装redis并设置开机自启动
Byte Beat
redis数据库缓存
官网下载解压https://github.com/tporadowski/redis/releasescmd下运行命令redis-server--service-installredis.windows-service.conf--loglevelverbose找到redis服务点击启动遇到如下问题,windows无法启动Redis服务(位于本地计算机上)。错误1067:进程意外终止需要在redi
- ssh 服务和 rsync 数据同步
MALLYUN
ssh服务器linux
目录一、ssh服务1、概述2、命令解析远程登录命令远程拷贝命令3、登录方式配置1、用户名密码登录2、公钥验证登录二、rsync数据同步1、rsync概述2、rsync运行原理3、rsync部署一、ssh服务1、概述ssh服务,一种远程管理连接工具,在CentOS7系统中默认安装并开机自启的。SSH(SecureShell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。监听tc
- SSH带外管理
KellenKellenHao
Linuxssh
SSH带外管理目录SSH带外管理一、概述二、配置文件三、命令解析四、登录方式配置1、用户名密码登录2、公钥验证登录四、实操一、概述ssh服务,一种远程管理连接工具,在CentOS7系统中默认安装并开机自启的。SSH(SecureShell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。监听tcp的22号端口。软件包名称:openssh配置文件目录:/etc/ssh,sshd_
- 准确--CentOS 7.9在线安装docker
ascarl2010
Dockercentosdockerlinux
一、安装Docker前的准备工作操作系统版本为CentOS7.9,内核版本需要在3.10以上。确保能够连通互联网,为避免网络异常,建议关闭Linux的防火墙(生产环境下请根据实际情况设置防火墙出入站规则)。#查看内核版本sudouname-r#查看系统版本sudocat/etc/redhat-release#关闭防火墙sudosystemctlstopfirewalld#禁用防火墙开机自启sudo
- 防火墙的禁用及开启
qq_33928223
安全管理网络知识系统管理网络服务器运维
要禁用firewalld的开机自启动,可以通过以下步骤操作:1.检查firewalld状态首先,确认firewalld是否正在运行:sudosystemctlstatusfirewalld如果显示active(running),说明firewalld正在运行。2.停止firewalld服务如果firewalld正在运行,可以先停止它:sudosystemctlstopfirewalld3.禁用fi
- 小白畅通Linux之旅-----ssh带外管理
m0_74617719
linuxssh服务器
目录一、概述二、配置文件三、命令解析sshscpsftp四、登录方式配置1、用户名密码登录2、公钥验证登录3、ssh客户端生成密钥对一、概述ssh服务,一种远程管理连接工具,在CentOS7系统中默认安装并开机自启的。SSH(SecureShell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等能。监听tcp的22号端口。软件包名称:openssh配置文件目录:/etc/ssh,s
- DELL R730XD服务器调整风扇转速
zz960226
服务器运维
注意:进入iDRAC的Web管理界面,左侧iDRAC设置->网络->IPMI设置,勾选启用LAN上的IPMI。使用ipmitool调整,服务器电源断开后就会失效,如果想要永久生效,就在服务器端写一个开机自启动脚本。先关闭风扇自动调速功能,否则手动设置的转速不会生效的。命令末尾的0x00表示关闭自动调速,0x01表示开启自动调速。linux脚本自动执行版安装ipmitoolpacman-Sipmit
- 解决windows的wifi模块不见了
派大星是bug?
windows
问题的发现突然开机发现wifi模块没有了问题的解决使用快捷键ctrl+alt+.或者ctrl+alt+delete打开任务管理器选择服务,打开服务服务,找到WLANAutoConfig右键启动总结偶尔开机这个服务总是没开机自启导致wifi无线网卡无法正常使用,打开这个服务就可以正常是使用了
- 轻松三步搞定!设置简鹿多开开机自启就这么简单
简鹿办公
软件教程简鹿多开开机启动设置软件如何设置开机启动
很多人会使用“简鹿多开”这款电脑软件来实现微信、QQ等应用的多账号同时登录。比如一边用工作号处理事务,一边用私人号与朋友聊天,互不干扰。为了让使用更加方便,我们还可以设置让“简鹿多开”在电脑开机时自动启动,这样就不用每次手动打开软件再登录账号了。那么具体要怎么操作呢?一起来看看吧!第一步:下载并安装适合你系统的版本首先,你需要根据自己的操作系统,下载并安装正确的“简鹿多开”版本:如果你使用的是Wi
- firewall docker 冲突问题解决(亲测有效)
#关闭iptables,使用firewallsystemctldisableiptables#禁用服务systemctlstopiptables#关闭服务systemctlstatusiptables#查看服务状态systemctlenablefirewalld#设置防火墙开机自启动systemctlstartfirewalld#开启服务systemctlstatusfirewalld#查看服务状
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http