分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]
  [文章作者:张宴 本文版本:v1.0 最后修改:2011.06.28 转载请注明原文链接:http://blog.zyan.cc/windows_mstsc/]

  个人不喜欢服务端程序,以 Windows 操作系统作为运行平台,但是,很多时候,迫于环境现状,需要让自己的程序实现跨平台。

  在开发全新的金山游戏运营平台时,发现:虽然大部分游戏,服务端程序运行在 Linux 服务器,但是,仍有例外。几款最近代理的游戏,服务端运行在 Windows 服务器上。西山居开发的游戏,服务端集群架构,既有 Windows 服务器,又有 Linux 服务器。

  点击在新窗口中浏览此图片


  游戏运行系统的 Knose 程序,我最初是在 Linux 下开发的,后来才实现了兼容 Windows 的跨平台版本。

  点击在新窗口中浏览此图片


  在 Linux 下,Knose 为“父子进程+指令处理线程池+独立功能多线程”结构;在 Windows 上,将 Knose 父子进程结构,拆分成了 knose_daemon.exe(Service 服务程序)和 knose.exe(主程序),由 knose_daemon.exe 启动 knose.exe。

  点击在新窗口中浏览此图片


  遇到了问题:按照运营维护需求,knose.exe 以及通过它启动的游戏服务端进程,需要有“窗口界面”,显示在桌面中。而 knose_daemon.exe 是以服务方式运行的,无窗口界面,knose_daemon.exe 启动的 knose.exe,窗口界面没有弹出来。

  为了解决这个问题,我在 install.bat 中,用了 Windows 的 sc 命令,将 knose_daemon.exe 启动为系统服务,“type= interact type= own”设置了“允许桌面与服务交互”。在本机(Windows XP SP3)测试,knose.exe 的窗口界面以及通过它启动的游戏进程窗口界面,都弹出来了。

@echo off
sc create "KingeyesKnose" binPath= "%CD%\knose_daemon.exe" DisplayName= "Kingeyes Knose Daemon" start= auto type= interact type= own
sc description KingeyesKnose "金山游戏运营系统 KingEyes Knose 守护进程。"
sc start KingeyesKnose


  点击在新窗口中浏览此图片


  于是将程序发布到 Windows Server 2003 服务器上,远程桌面连接上去,发现 knose.exe 的窗口界面始终弹不出来。

  后来,同事发现,原来是“远程桌面”惹的祸:

  远程桌面客户端 mstsc 有一个 /console 参数,模式等同于本地终端显示器登录,/console 不会去占用非 /console 远程桌面,远程桌面允许两个正常连接和一个控制台/console方式连接,并且正常连接和 /console 连接的桌面操作不能相互看见,只有通过 /console 参数远程桌面连接到 Windows 2003 服务器,才能够看到弹出的 knose.exe 窗口界面。

  在 Windows XP SP3 以上版本,/console 参数改名为 /admin,需要用 mstsc /admin 启动远程桌面:

  点击在新窗口中浏览此图片

  连上后,终于能够看到由 knose_daemon.exe 启动的 knose.exe 程序窗口,以及由 knose.exe 启动的游戏服务端进程窗口了。
  [文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.zyan.cc/libevent_windows/]

  本文介绍了如何在 Windows 操作系统中,利用微软 Visual Studio 2005 编译生成 Libevent 2.0.10 静态链接库,并利用 Libevent 静态链接库,实现一个简单的 HTTP Web服务器程序:httpd.exe。

  假设 Visual Studio 2005 的安装路径为“D:\Program Files\Microsoft Visual Studio 8\”,Libevent 2.0.10 解压后的路径为“D:\libevent-2.0.10-stable”。



  一、编译生成 Libevent 2.0.10 静态链接库。
  
  1、修改“D:\libevent-2.0.10-stable\event_iocp.c”、“D:\libevent-2.0.10-stable\evthread_win32.c”、“D:\libevent-2.0.10-stable\listener.c”三个文件,在文件开头分别加上一行:
#define _WIN32_WINNT 0x0500


  2、鼠标点击Windows左下角的【开始】-【所有程序】,找到【Microsoft Visual Studio 2005】,执行下图中的脚本:

  点击在新窗口中浏览此图片


  3、按照下图中的方法编译Libevent 2.0.10:

  点击在新窗口中浏览此图片


  4、生成的“libevent.lib”、“libevent_core.lib”、“libevent_extras.lib”三个文件就是我们需要的 Libevent 静态链接库。

  点击在新窗口中浏览此图片



  二、利用 Libevent 静态链接库,实现一个简单的 HTTP Web服务器程序

  1、打开 Visual Studio 2005,新建一个项目

  点击在新窗口中浏览此图片
  [文章作者:张宴 本文版本:v1.0 最后修改:2010.01.29 转载请注明原文链接:http://blog.zyan.cc/truecrypt]

  QQ、MSN、RTX的聊天历史记录,有时候在处理问题时,想查看一下,但换台电脑,就查看不到了,怎么办?Foxmail在公司收取的邮件,在家就看不到了,怎么解决?SecureCRT存放大量服务器SSH密码信息,换台电脑,如何不在新电脑上保存信息,同时又使用起来又方便、安全?存放在U盘上的机密文件,如何避免U盘丢失、被盗后,文件泄漏?

  市面上有很多加密软件,但由于未开源,可能存在后门,或者漏洞,导致加密的文件可破解。因此,对于加密软件来说,还是开源的比较靠谱。源码都公开,留有后门的可能性不存在了。在源码都可以查看的情况下,如果能够破解,早就可以破解了。

  TrueCrypt(http://www.truecrypt.org/)是一款开源的绿色加密软件。它可以在硬盘或闪存上创建一个或多个虚拟磁盘,所有虚拟磁盘上的文件都被自动加密,加密后需要通过密码来进行访问,由于加入了AES-256加密算法,使得加密数据几乎不可能被,对于没有商务安全功能的普通电脑,或者不舍得购买加密闪存的商务用户,TrueCrypt可以让他们的数据存储安全可靠。

  前几天公司发了两个2GB的金山毒霸版U盘,我将我的QQ、MSN、公司内部通讯工具RTX、SSH客户端SecureCRT、OpenSSL VPN、Foxmail、一些文档都装在了其中一个U盘上。

  点击在新窗口中浏览此图片

  关于TrueCrypt的安全性,有一则外电新闻:http://www.security.nl/artikel/33724
  
  FBI在经过一年的尝试后,还是未能破译被巴西执法机构指控金融犯罪的巴西银行家的加密文件。巴西一家葡萄牙语报纸报道(葡萄牙语),巴西联邦警察在2008年7月展开的Satyagraha行动中,在银行家Daniel Dantas位于里约热内卢的公寓内收缴了5个硬盘。文章提到硬盘使用了两种加密程序,一种是TrueCrypt,另一种是不知名的256位AES加密软件。在专家未能破解密码后,巴西政府在2009年初请求美国提供帮助,然而美国联邦警察在一年不成功的尝试后,退还了硬盘。巴西现有的法律中不存在强制要求Dantas交出密码的规定。



  使用步骤:将TrueCrypt拷贝到U盘上,然后运行TrueCrypt.exe。

  1、创建文件加密卷
Tags: , , ,
  很多网站都通过User-Agent来判断浏览器类型,如果是3G手机,显示手机页面内容,如果是普通浏览器,显示普通网页内容。

  谷歌Chrome浏览器,可以很方便地用来当3G手机模拟器。在Windows的【开始】-->【运行】中输入以下命令,启动谷歌浏览器,即可模拟相应手机的浏览器去访问3G手机网页:

  谷歌Android:
chrome.exe --user-agent="Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"


  苹果iPhone 4:
chrome.exe --user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405"


  苹果iPad 2:
chrome.exe --user-agent="Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405"


  诺基亚N97:
chrome.exe --user-agent="Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124"


  试一试,分别用Android、iPhone、诺基亚访问http://www.163.com/http://blog.zyan.cc/http://www.google.com.hk/http://3g.qq.comhttp://t.sina.cn这些3G手机网页,看看有什么不同。

  更多款手机的User-Agent:http://www.zytrax.com/tech/web/mobile_ids.html

  10月11日备注:如果想切换回普通浏览器模式,关掉所有Chrome浏览器,重开即可。如果不想关闭浏览器,切回普通浏览器模式,则访问:
chrome.exe --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7"
Tags: , ,

Google 公共 DNS 解析服务器

[不指定 2009-12-7 07:09 | by 张宴 ]
  Google 推出了公共的 DNS 解析服务器(Google Public DNS),可以用来代替 OpenDNS。Google承诺将严格遵循DNS协议,即不阻挡、不劫持和不过滤用户查询。Google Public DNS服务器IP非常好记,过目难忘:

引用
8.8.8.8        google-public-dns-a.google.com
8.8.4.4        google-public-dns-b.google.com


  点击在新窗口中浏览此图片

  点击在新窗口中浏览此图片

  当然,短IP的DNS服务器还有以下这些:
引用
4.3.2.1
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
4.2.2.5
4.2.2.6

Tags: , ,
  我用过putty、SSH Secure Shell Client等Windows下的SSH客户端软件,这些软件可以实现终端仿真,通过Shell命令远程操作Linux、FreeBSD系统,却不能直接上传文件到服务器或从服务器下载文件,还必须配合使用单独的psftp、WinSCP等基于SSH(sftp、scp)进行文件传输的软件,不太方便。
  
  对于采用了美国RSA信息安全公司的SecurID双重认证系统的用户来说,psftp、WinSCP等软件就无法使用了。因为SecurID系统包含一个配备液晶显示的令牌(Token),令牌每60秒便能产生一组全新的6位数字密码。用户在登录服务器时,除输入其帐号、密码及私人PIN码外,还需输入显示在令牌上的6位数字,黑客想猜出密码进行入侵几乎是不可能的,但由于psftp、WinSCP等软件无法输入SecurID令牌密码,因而不能进行文件传输。
  
  而SecureCRT这款国外的SSH客户端软件则同时具备了终端仿真器和文件传输功能。
  
  上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器,例如(上传一个rsyncd.conf文件到服务器):
  [root@localhost ~]# rz
  rz waiting to receive.
  正在开始 zmodem 传输。 按 Ctrl+C 取消。
  正在传输 rsyncd.conf...
    100%     715 bytes  715 bytes/s 00:00:01       0 错误
  
  下载文件只需在shell终端仿真器中输入命令“sz 文件名”,即可利用Zmodem将文件下载到“路径\SecureCRT-5.1.3\download\”目录下,例如(下载服务器当前目录下的rsyncd.conf文件到本地):
  [root@localhost ~]# sz rsyncd.conf
  rz
  正在开始 zmodem 传输。 按 Ctrl+C 取消。
  正在传输 rsyncd.conf...
    100%     715 bytes  715 bytes/s 00:00:01       0 错误
  
  如果要改变SecureCRT终端的背景颜色和文件名颜色,只需点击菜单栏上的“选项”-“会话选项”,在“终端“-“仿真”分类的右侧窗口选上“ANSI 颜色”以及“选择一个备用的键盘仿真-Linux”,如图:
  
  
  《SecureCRT 5.1.3 绿色汉化版》下载地址:
  http://ishare.sina.com.cn/cgi-bin/fileid.cgi?fileid=1386760
  我今天安装了微软公司的Internet Explorer 7网络浏览器简体中文版,总结了IE7的安装、设置和使用方法如下:
  
  一、安装
  1、下载IE7简体中文版安装程序
  ①、Internet Explorer 7.0.5730.11 for XP SP2 简体中文版 (此版本只能运行于Windows XP SP2) [微软网站下载] [华军软件园下载]
  
  ②、Internet Explorer 7.0.5730.11 for Win2003 SP1 简体中文版 (此版本只能运行于Win2003 SP1) [微软网站下载] [华军软件园下载]
  
  *由于IE7安装时会验证Windows是否为正版,盗版Windows用户请按以下步骤进行破解:
  2、切断网络(禁用网络连接、拔掉网线或关闭ADSL)。
  
  3、安装IE7,出现正版验证页面时,点击验证按钮。验证的结果肯定是通不过,这时不管它,不要退出IE7安装程序。
  
  4、点击【开始】-【运行】,输入路径C:\Documents and Settings\All Users\Application Data\Windows Genuine Advantage\data按回车键,在该目录下找到data.dat文件,删除它。
  
  5、回到IE7安装程序,再一次点击验证按钮,即可通过。安装完成后重新启动计算机。
  我们大班的一个女生为她的笔记本电脑重装操作系统后,驱动程序盘找不到了,找不到声、显卡驱动程序,从网上下载的驱动程序因型号不对,安装了也不行。于是她把她的笔记本电脑借我,让我帮她找一下驱动。
  我看了一下该笔记本电脑,是联想昭阳笔记本,于是就打开联想集团中文网站(http://www.lenovo.com.cn)看看能不能找到相关驱动程序。我发现在“支持&下载”栏目(http://www.lenovo.com.cn/Support/Channel/)输入她笔记本电脑的主机编号EB02556068(从笔记本背面查看获取),就可以查到并下载该型号联想笔记本电脑的驱动程序了。

  附1:联想笔记本电脑主机编号获取方法
  主机编号位置:联想电脑装箱单或主机背面
  联想电脑装箱单上标明的是:"主机编号:NB0XXXXXXX" 或 "主机编号:EB0XXXXXXX"
  主机背面标明的是:"S/N:XXXXXXX"
  说明:
  主机背面的编号S/N:XXXXXXX,(编号小于1570000)录入时需要加上NB0,即NB0+XXXXXXX
  主机背面的编号S/N:XXXXXXX,(编号大于1570000)录入时需要加上EB0,即EB0+XXXXXXX
  NB、EB后为数字0,不是字母。
  举例:
  (装箱单)主机编号:EB07237684,录入:EB07237684
  (主机背面)S/N:7237684,录入:EB07237684
  (装箱单)主机编号:NB00965438,录入:NB00965438
  (主机背面)S/N:965438,录入:NB00965438
  
  附2:联想台式电脑主机编号获取方法
  主机编号位置:装箱单上注明“出厂编号”后面的一组号码。或者主机背面产品标签上注明为“出厂编号”后面的一组号码。
  填写原则:最好以装箱单为准,若没有装箱单,主机上条形码的填写原则目前产品为前十位,早期产品为前六位或七位,以最先出现的字母为界限(首字母除外);
  举例:
  目前产品:如条形码为:NA02001263NA19121620,则输入:NA02001263
  早期产品:如条形码为:434648AAXXXXXXXXX,则输入:434648
  又如条形码为:S442663AXXXXXXXXX,则输入:S442663
  这是我以前做的一个网站项目中的开发文档附件。我后来的一段时间都是用PHP+MySQL数据库做网站,很久没接触SQL Server数据库了,但现在又要跟SQL Server数据库打交道了,就把这个附近发了出来,方便参考。

★附件㈠、如何进行SQL Server数据库的备份与恢复

  方法一、利用备份和恢复

  先对源数据库进行完全备份,备份到一个设备(device)上,然后把备份文件复制到目的服务器上(恢复的速度快),进行数据库的恢复操作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了。这种方法可以完全恢复数据库,包括外键,主键,索引。

  方法二、直接拷贝数据文件

  把数据库的数据文件(*.mdf)和日志文件(*.ldf)都拷贝到目的服务器,在SQL Server Query Analyzer(中文名:SQL查询分析器)中用语句进行恢复:

EXEC sp_attach_db @dbname = 'test',
@filename1 = 'c:\mssql\data\test_data.mdf',
@filename2 = 'c:\mssql\data\test_log.ldf'

  这样就把test数据库附加到SQL Server中,可以照常使用。如果不想用原来的日志文件,可以用如下的命令:

EXEC sp_detach_db @dbname = 'test'
EXEC sp_attach_single_file_db @dbname = 'test',
@physname = 'c:\mssql\data\test_data.mdf'

  这个语句的作用是仅仅加载数据文件,日志文件可以由SQL Server数据库自动添加,但是原来的日志文件中记录的数据就丢失了。
  习惯地打开电脑,习惯地点击IE浏览器,但它却打不开了,点击后没任何反应。查看进程,发现iexplore.exe在进程中,猜想可能是IE模块损坏了,于是将这些模块重新注册了一遍,问题解决。
  【开始】-【运行】-依次输入以下命令
  regsvr32 Shdocvw.dll
  regsvr32 Oleaut32.dll
  regsvr32 Actxprxy.dll
  regsvr32 Mshtml.dll
  regsvr32 Urlmon.dll
  我通过这种方法使IE浏览器恢复了正常。如果发现无效,再重新输入一遍,这次在输入完第一条命令后再加入一条命令regsvr32 Shell32.dll,然后再依次输入余下的命令,重新启动计算机即可。
Tags: ,

1小时ASP快速入门[转贴]

[不指定 2005-5-28 11:38 | by 张宴 ]
  经常有人问我,在没有任何基础的情况下,怎么学习动态网页编程。今天偶尔发现一篇《1小时ASP快速入门》的文章,或许对他们很有用,就转了过来。我一开始学的也是ASP语言,自己在2003年8月创办的网站---商资网就是用ASP写的。但现在已经很久没用ASP技术做动态网站了,原因是学校大多数网站的服务器用的是Linux操作系统,WEB服务自然也就是PHP语言+MySQL数据库了。正如我相信的一句话:“如果不能改变现实,就要面对现实。在现实的基础上因势利导。”我要给学校一些部门做网站,但我不可能叫他们更换操作系统与PHP服务,所以我后来转向了PHP技术。我给经济学院做的网站、给校党委宣传部做的中南民族大学新闻网、给就业指导服务中心做的中南民族大学就业信息网等等,都用的是PHP技术。虽然我已经可以决定在服务器上安装什么系统、采用什么技术,但此时已经习惯了PHP,就用PHP了做了。现在很多企业、国家机关的网站开始用JSP、ASP.NET技术写,我想,未来我可能还会转向JSP、ASP.NET。
  1小时ASP快速入门,原文如下:
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]