第一道:西红柿炒鸡蛋
西红柿炒鸡蛋,是很多人喜欢了一辈子的一道经典的家常下饭菜,有多少个家庭,就有多少种做法,我来教给大家它最为传统的做法。
具体制作步骤:
第一步:准备食材。西红柿2个、鸡蛋4个、白糖少许、油盐适量。
第二步:鸡蛋打散,加入盐和不超过蛋液三分之一的清水,搅拌均匀。加清水是为了让鸡蛋炒出来更加蓬松柔软。
第三步:把西红柿洗净后切成小块儿。
第四步:锅中注油,油热后把蛋液倒进去,待蛋液稍稍凝固,用筷子快速划散,炒成大块儿,盛出待用。
第五步:重起油锅,油热后倒入西红柿中火翻炒,把西红柿炒融,炒出红油。
第六步:西红柿炒融后,调入一点点白糖,把炒好的鸡蛋倒进去,炒匀即可出锅。
一、饥荒正版服务器开服步骤:
1、建服准备工作——获取令牌
如果要建立一个向公众开放的独立服务器,则必须要获得服务器令牌,这样做的目的是能够让开发者关停违反了服务条款的服务器。
根据以下步骤获得令牌:
注意:所有符号及标点全部使用半角模式输入。
运行Don't Starve Together。
点击Play !。
按~(数字键1左边的按键)开启控制台输入指令,再按一次关闭控制台,若还有控制台文字信息显示在屏幕上按CTRL+L关闭。
如下图在Documents\Klei\DoNotStarveTogether下已经生成了server_tokentxt文件。
2、建服准备工作——修改配置文件
(1)配置文件路径
如下图settingsini位于C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether路径下。
(2)注意:因为DST不支持Unicode,以下内容请全部使用英文。
若以下内容settingsini内没有可自行加上,也可不加,服务器出现任何问题后果自负。
[network]网络配置
default_server_name = 这里填服务器名。
default_server_description = 描述一下你的服务器(可不填)。
server_port = 10999,服务器通信端口,最好不要改动,对端口映射及网络类型熟悉的人员可自行更改。
server_password = 这里填服务器密码,如果要对公众开放则不填。
max_players =[1-64]最大玩家数1到64,根据计算机性能和网络负载能力填写,默认6。
pvp = true [ true | false ]是否开启PVP(玩家可以互相攻击)。
game_mode = [ endless,survival,wilderness ]游戏模式三个里面选一个填。
override_dns = [填写DNS服务器]覆盖DNS设置,如果log in很慢的情况下,可以改成8888,8888。
enable_vote_kick = [ true | false ]是否允许投票踢人,默认true。
enable_snapshots = [ true | false ]是否允许服务器回退到一个之前的状态(等同于回档,可用来防止烧家的熊孩子),开发者称这项功能在一些服务器上会导致问题的发生,默认false。
enable_autosaver = [ true | false ]是否开启自动保存功能,默认开启,新的一天开始服务器会自动保存。
tick_rate = [ 10 | 15 | 30 | 60 ]类似于FPS,这个值越高客户端动作越流畅,这取决于服务器的网络带宽和CPU,默认30。
connection_timeout = [填写毫秒数,1秒=1000毫秒],中断与没有响应的客户端的等待时间,默认8000。
server_save_slot = [1-5]服务器加载哪一个存档,默认1。
pause_when_empty = [ true | false ]服务器空闲时是否自动暂停,当有玩家进入时继续,最好用于有密码的私人服务器,默认false。
[account]账号配置
dedicated_lan_server = false [ true | false ]是否只允许局域网游戏,默认关闭。
3、ADSL拨号上网
有路由器(市面上路由器种类太多,不单独作某一型号路由器说明,方法大同小异。):进入路由器设置页面,找到端口映射功能,添加需要映射的端口:协议选UDP,端口号填10999。
无路由器:打开控制面板->系统和安全->windows防火墙->高级设置->入站规则右键新建规则->勾选端口->勾选UDP,特定本地端口:填10999。
4、开启服务器——测试是否成功运行服务器
根据以下步骤来开启服务器:
打开DST Dedicated Server。
打开Don't Starve Together。
点击Play!,稍等片刻。
Server-Type服务器类型筛选选择Dedicated Server。
若自己的服务器出现在右边列表中并且显示Dedicated Server,说明服务器成功运行(并且邀请其他玩家测试是否能够进入自己的服务器)。
(1)开启服务器——局域网服务器
局域网服务器只能使用指定范围端口10998到11018。
在配置文件settingsini内[account]下添加dedicated_lan_server = true即可被局域网内其他终端发现。
(2)开启服务器——运行多个服务器
首先确保计算机硬件和网络带宽是否强大到能够同时运行多个服务器。
创建新的服务器路径:在服务器的启动选项内输入-conf_dir <文件夹名>。
5、服务器管理——控制台指令
根据以下步骤获取管理员权限:生成令牌的用户会自动获得管理员权限。
拥有管理员权限的用户能够从服务器内踢出其他用户或者封禁其他用户,也能执行LUA脚本。
如果想授予其他用户管理员权限,需要在Documents\Klei\DoNotStarveTogether\save\下新建一个名为adminlist的txt文件。
服务器关闭状态下在新建的adminlist文件里添加User ID(格式为KU_),每行只能填写一个User ID,保存后关闭文件,开启服务器后所添加的用户即拥有了管理员权限。
搭建服务器的配置需求:
(1)Steam账号内必须拥有Don't Starve Together,拥有DST即可建立多个独立服务器(Dedicated Server)。
(2)独立服务器没有使用DST游戏内建立服务器的路由穿透技术,服务器必须为游戏客户端开放一个合适的端口,服务器默认通信方式:UDP协议,端口号:10999。
(3)建立一个稳定的独立服务器必须确保系统满足以下要求:
网络上传速度:8KB/玩家/秒。如果按照独立服务器最大人数为6人来换算,网络上传速度必须达到50KB/秒或以上才能让6个玩家同时进行游戏,当然网络上传带宽越大越好,较差的网络通信会导致连接独立服务器的玩家动作卡顿以及卡屏。
内存:大约65MB/玩家。如果按照独立服务器最大人数为6人来换算,可用内存大小必须达到500MB或以上才能让6个玩家同时进行游戏。
CPU:官方网站没有明确说明。
游戏运行库:VCRedist_2008(x86),DST游戏根目录文件夹内有,对着DST右键->属性->本地文件->浏览本地文件
转载表面上看,是一套基于B/S方式实现的分布式管理系统,但其实背后的架构是基于C/S完成的。你以为他是一只鞋吗?其实他是一个吹风机。作为界面化的系统,浏览器框架是不可或缺的,但更加重要的东西在Socket上面。
一、需要解决中央控制端到各节点服务器之间的通信。
这个其实牵扯到一个通信协议的问题,各语言都有自己的socket,thread的库,直接调用即可。但是这个通信协议就需要自己来完成了。既不能太简单,太简单了,明码传输,如果别人获知了这个接口,就很容易执行一些令人讨厌的 *** 作。也不能太复杂,太复杂了等于是给自己找麻烦,所以简单的数据包编解码的工作或者用token验证的方式是需要的。通信协议起码要两种,一种是传输命令执行的协议,一种是传输文件的协议。
二、跨语言的socket通信
为什么要跨语言,主控端和代理端通信,用什么语言开发其实无所谓。但是为了给自己省事,尽可能使用服务器上已经有了的默认语言,Ambari前期采用phppuppet的方式管理集群,这不是不可以,puppet自己解决了socket通信协议和文件传输的问题,可你需要为了puppet在每台服务器上都安装ruby。我是个有点服务器和代码洁癖的人。光是为了一个puppet就装个ruby,我觉得心里特对不起服务器的资源。所以我自己写了一个python的代理端。python是不管哪个linux系统在安装的时候就都会有了。然后主控端的通信,可以用python实现,也可以用php实现,但是考虑到对于更多的使用者来说,改php可能要比改tornado简单许多,所以就没用python开发。hadoop分支版本众多,发布出去,用户要自己修改成安装适合自己的hadoop发行版,就势必要改源码,会php的明显比会python的多。php里面的model封装了所有的 *** 作,而python只是个 *** 作代理人的角色而已。
所以也延伸出一个问题,什么语言用来做这种分布式管理系统的代理端比较合适,我自己觉得,也就是python比较合适了, *** 作系统自带,原生的package功能基本够用。用java和php也可以写agent,但是你势必在各节点预先就铺设好jre或者php运行环境。这就跟为什么用python和java写mapred的人最多是一样的。没人拦着你用nodejs写mapred,也可以写,就是你得在每个节点都装v8的解释引擎,不嫌麻烦完全可以这样干。原理参看map/rece论文,不解释。perl也是 *** 作系统原生带的,但是perl的可维护性太差了,还是算了吧。
所以这就牵扯到一个跨语言的socket问题,理论上来说,这不存在什么问题。但这是理论上的,实际开发过程中确实存在问题,比如socket长连接,通信数据包在底层的封装方式不同。我没有使用xml-rpc的原因之一就是我听说php的xmlrpc跟其他语言的xmlrpc有不同的地方,需要修改才能用,我就没有用这种办法。最早是自己定义的 *** 作协议,这时就遇到了这些问题,所以后来直接采用了thrift方式。就基本不存在跨语言的socket通信问题了。
三、代理端执行结果的获取
无论命令还是文件是否在代理端执行成功,都需要获取到执行结果返回给中央端。所以这里也涉及一个读取节点上的stdout和stderr的问题。这个总体来说不是很难,都有现成的包。当然这个时候你需要的是阻塞执行,而不能搞异步回调。
还有个问题是,我要尽可能使用python默认就带的包,而尽量不让服务器去访问internet下载第三方的包。
还有代理端最重要的一点,就是python的版本兼容性。centos5用python24,centos6用python26,ubuntu基本默认都是27。所以一定要最大限度的保证语言的跨版本兼容性,要是每个 *** 作系统和每一个版本我都写一个代理,我一个人就累死了。
四、浏览器端的model,view,controller
这里面你要封装好所有的通信协议,以及需要在节点上面执行的脚本。发送文件的 *** 作和数据库 *** 作也要在model里面完成。
如果对tcl/tk很熟,也可以写基于 *** 作系统界面方式的管理,不用浏览器就是了。
view对我来说是最痛苦的事,都是现学的jQuery怎么用,前端的工作太可怕了。关于这方面,没有太多可描述的,html和js带给我的只有痛苦的回忆,万恶的undefined。
五、跨 *** 作系统的安装文件封装。
要适应不同的 *** 作系统也是个很麻烦的事情,需要用agent提前获知 *** 作系统的发行分支,版本号。然后去找到对应的安装文件去执行。你不能保证一个分布式系统的集群中所有的节点都可以访问internet,更多的情况是这些节点都存在在一个安全的内网中。只有个别几个节点是可以访问外网的。所以,我势必要把所有的安装文件以及他们的依赖尽可能集中起来。我不确定安装 *** 作系统的lzo,yum或者apt-get会去下什么鬼东西,甚至无论是yum还是apt-get,里面都没有hadoop-lzo的库文件。所以,最好的办法是自己编译打包rpm和deb包。直接安装就好了,别去找repo下载什么。
这就是第五步工作,把需要的依赖的东西自己编译打包成rpm和deb。
deb包很好解决,但是rpm就没那么好办了,需要学习rpm的编译文件如何编写,这块是挺麻烦的,但是这玩意用好了还是挺不错的。现在我自制的安装包里面就已经包含了自己编译的lzo和snappy两种压缩库,以及hadoop-gpl-packaging的rpm和deb。下一个发布的easyhadoop将直接支持centos5,6,suse,以及ubuntu/debian的系统上安装hadoop。已经自带了lzo和snappy以及lzop和snzip。
六、把这些所有东西,整合到一个系统里面。
关联这些所有事情间的联系,整合到一个浏览器界面里面去。写一个分布式的管理脚本不难,写一个界面也不难,但是也许是我的水平不行,这两件事结合起来让他们协同工作还是有点难度的。对我来说,写界面的工作可能更难一点。
Cloudera可能是十来个人在写Manager的东西,ambari也是放到github和apachesvn上面,apache基金会的各种committer在写。easyhadoop没他们功能那么强大,一年来只有我一个人设计架构,功能,各种语言的编码,测试,发布。Fortheloveofgod,WhathaveIdone(英文部分请站在山顶仰天长啸)T_T。从前台到后台,到hadoop和生态系统以及他们的依赖软件的单独patch、编译打包。(系统yum或者apt-get的包不如自己打的好使。)
从时间上来看,全球第一款开源的hadoop部署管理系统应该还是属于ambari,2011年8月开始写的,2012年9月底进入apache的incubator。我是大概2012年8月开始写的easyhadoop,全球第一没赶上,估计国内第一个开源的hadoop管理系统还是可以排上的。
LZ说的是在网络上架设服务器。 这个也太难了,一般网吧比较好弄一些。 如果楼主真的想架设服务器。 首先的我们需要做的是安装《半死不活》(Half Life,以下简称HL)和CS,需要注意的是服务器和客户端都要保持HL和CS的版本一致,否则是无法进行连接的。程序可以直接从其他机器复制而来。不管是HL还是CS,都带有一个名为hldsexe的程序,这就是专门用来架设服务器的程序。直接双击它以后运行的是HL,所以我们必须对它进行一些相应的配置。CS的配置文件有以下三个:Servercfg、Mapcycletxt、Motdtxt,文件都在Cstrike目录下。这三个文件都是文本文件,可以使用任何文本编辑器进行编辑。Servercfg是服务器的基本配置文件,主要的设置都在这里进行,下面是一些常用的设置,并附带解释:1Servercfg
可用任何文本编辑器进行编辑。
0为No,1为Yes。
sv_aim0 是否自动瞄准
pausable0 是否客户端可暂停游戏
hostname “CSchinayeahnet CS'Server ” 服务器名字
mp_timelimit 30 更换地图时间
mp_c4timer 45 炸d倒计时时间
mp_chasecam 0 是否固定镜头(如果选1,进入服务器后只能在固定地点观战,否则未加入队伍的人可以自由观看)
mp_forcechasecam 1 死后是否可以自由观看,参数选1为只可以查看自己人,2为死后只能固定在死亡地点
mp_falldamage 1 高处落下具有伤害
mp_flashlight 1 是否有战术手电
mp_footsteps1 是否有脚步声
mp_freezetime 4 每局开始固定买物品时间
mp_friendly_grenade_damage1是否手雷友军伤害
mp_friendlyfire 1 是否友军伤害
mp_autoteambalance2 自动调整双方人数差异最低限制,当一方人数超过另一方2人时会将多出的人分配到少人的队伍
mp_roundtime4 每回合时间
rcon_password 服务器密码
mp_tkpunish 0 是否对伤害友军的人进行惩罚(踢出服务器)
mp_mapvoteratio 02 投票比率
mp_logfile1 是否服务器留下记录文件
logon 开始记录
mp_playerid 0 为所有人在状态栏都可看到所有人的名字;1为只能看到自己人的名字;2为看不到任何人名字;0为默认
mp_fadetoblack0 人物死亡后屏幕变黑,0为不变,1为默认
mp_buytime 可以购买物品时间,例如mp_buytime 18为108秒那可以购买,15分钟为默认
mp_winlimit15 一方胜利次数达到次数更换地图
allow_spectators1 允许观察员角度,0为不允许,1为允许,1为默认
mp_hostagepenalty=3 规定时间内伤害人质超过三人自动踢出
2mapcycletxt为地图设置文件,服务器将按该文件里设置的地图进行循环。可以在cstrike/maps目录下查看bsp文件,既是地图文件,可将你想循环的地图的名字输入mapcycletxt中,注意不要带文件后缀。比如如de_dustbsp,只取de_dust。注意每个地图之间用硬回车隔开。
3motdtxt为服务器说明文件,当每个玩家进入服务器后看到的第一个窗口就是。可以随意按照自己喜欢写。最好注明服务器的基本设置。
有了一个上述设置的服务器基本就算准备好了,但是别急,可不是运行HLexe来进入游戏哦,用的是HLSexe,而且要带上参数。下面再来说说服务器运行参数:
F:\Hserver\hldsexe -game cstrike -port 27016+maxplayers 22 +map cs_office +nomaster -sv_lan 1
-game strike 指定运行游戏为CS
+maxplayers 22游戏最大人数22人(游戏只支持20人,多余两人为观众)
-port 7016 指定游戏连接端口为27016�同一服务器指定不同的端口可以开多个CS服务器
+map cs_office 指定第一张地图为cs_office+servercfgfile server2cfg Listen Server 指定启动的配置文件名称。此参数可以不使用,即用同一游戏开的不同端口服务器都使用相同配置文件
-nomaster 让服务器不上WON认证,避免因为出国网络不通导致的服务器问题。
+sv_lan1 指定为一个LAN server。其他人进服务器的时候,进Lan game即可自动搜索出服务器。
按照以上方式运行的服务器会在一个DOS窗口下运行,当窗口上的红色部分FPS里开始显示闪动数字的时候�服务器就已经架设成功了。 如果楼主嫌麻烦的话,可以去对战平台上玩。 可以下载各种插件,也是挺有意思的在CS目录中创建HLTVEXE的快捷方式,查看快捷方式的属性,在"目标"栏填写
x:\Counter-Strike\hltvexe +connect 游戏服务器的IP和端口 -port HLTV服务器的端口 +rate 10000
★hltvcfg中文说明:
// HLTV 服务器在分数板上的名称
name "HLTV Proxy"
// HLTV服务器的名称
hostname "My HLTV Proxy"
// 被HLTV服务器踢出的客户看到的文字
offlinetext "Sorry, game is delayed Please try again later"
// 延迟播放30秒,以便服务器缓冲数据,保证流畅转播
delay 300
// 若观战者选Auto Director(自动导演、剪辑)模式,在发生重要事件可能达20%时,自动添加半速慢放效果
slowmotion 05 02
// 多路广播,除非网路支持多路广播功能,否则建议设0
multicast 0
// 最高客户端速率,Internet建议3500(35KByte/sec),LAN建议10000
maxclientrate 3500
// 记录HLTV日志到proxylog文件
logfile 1
// 连接HLTV服务器的观众可否谈话,0禁止,1同一HLTV服务器观众可相互谈话,2所有HLTV服务器观众可相互谈话
chatmode 1
// 如果游戏服务器被加密,则激活下列一行代码,即去掉前面的"//"
//serverpassword "PASSWORD"
// 依照下行格式添写密码
adminpassword "mypassword"
// 允许客户端用joingame命令加入
allowjoingame 1
// 设置定时显示HLTV服务器信息,120每隔120秒,localmsg后"为显示的信息内容,5显示5秒,-1 X轴位置-1表示// 中间,09 Y轴位置,FFA000FF RGBA颜色值:红、绿、蓝、透明度
loopcmd 1 120 localmsg "You're watching HLTV Visit >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)