1- Windows XP虚拟机网络配置
选用桥接方式,配置好的虚拟机和宿主机在同一网段,各自有不同的IP地址,或曰虚拟机和宿主机可视做同网段的两台不同机器。
2- 填好登录名和密码,可配置为自动登录。
3- 分辨率可设置更高,DPI设置150%,让字体足够大、足够清晰。
4- 自动快照,当前位置损坏时可从快照中恢复
另外,如果没做快照虚拟机不能启动的话,可再建一个虚拟硬盘,在新盘上做系统,将旧硬盘也挂上去,这样新的虚拟机有两块硬盘,新盘启动后应该能看到旧盘上的数据仍在。
5- 开机自动启动虚拟机
做个快捷方式,虚机vmx用vmware加 -x 自动启动XP虚拟机。
"C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x "K:\Vmware Hosted OSes v16.0\XPwith(WB-QCWIN-wheel-delphi-vb-vc-7z)\Windows XP Professional.vmx"
6- 安装微软 4.12 版本的鼠标驱动激活滚轮
7- 安装Mypal或k-melon浏览器
这两款浏览器对现在的网页支持比较好,如今(2003.10.30)仍可以正常上网。
8- 启用XP自带的IIS5.1,亦可安装独立的IIS5.1
9- 配置站点属性
IP= 192.168.3.116, 测试可用自动获取得到的这个IP; 端口号 88;创建好后,在防火墙上增加例 外,放行88号端口,否则不能访问。
10- 配置perl脚本cgi-pl
创建cgi-pl目录,其属性页的映射中,填perl执行文件、后带两个 %s %s,参数间加空格,扩展名填.pl,即目录中所有以.pl结尾的文件都用perl.exe解释,其它脚本参照配置。
11- VBscript和ASP配置
ASP默认是配置好的,如果没有选择版本,选定版本即可。VBscript不需要另外配置。ASP用<%和%>括起来,vbscript直接在之中写,如果是browser端执行,则用document.write; 如果是在server端执行,则用response.write,现在浏览器 browser 端已经不支持vbscript了,只能在server端用。
<html>
<head>
<title>Test VBscript</title>
</head>
<body>
<%
dim a, b
a = "<h1>Good!</h1>"
b = "<h1>This is my first VBScript!</h1>"
response.write(a)
response.write(b)
%>
</body>
</html>
12- cgi-bin可执行文件网关配置
不需要配置,赋予目录脚本或程序可执行权限即可。可以用VC6的console方式编程,读web的环境变量 getenv("QUERY_STRING"),得到混编的参数,用sscanf可以分离出单独的参数,然后对参数处理,再用printf返回给浏览器即可。
13- 对websocket的支持
现在的浏览器html5已经普及了,普遍使用websocket在javascript下编程,这要求server端支持socket,简单实现的方法是外挂一个 socket server,可在sourceforge或github上下载一个 websocketd.exe,它是console方式的exe程序,有linux, bsd, solaris, windows i386, windows x64等各种版本。
在XP虚拟机的DOS prompt下执行 websocketd --port=81 --address=192.168.3.116 myapp.exe,在192.168.116:81上建ws服务。
比如,vc6写的myapp.exe如下
#include <stdio.h>
#include <windows.h>
int main(int argc, char* argv[])
{
long counts=0;
while(1) {
Sleep(1);
printf("%s %d\n","Hello from Sserver!", counts++);
if (counts>70000) {counts=0;}
}
return 0;
}
浏览器端机器IP是 192.168.3.113,写如下代码,在浏览器可以看到server发送的连续不断的变化数据。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>wstest</title>
</head>
<body>
<p id="showtag"></p>
<script type="text/javascript">
var ws = new WebSocket('ws://192.168.3.116:81/');
ws.onmessage = function(event) {
console.log('Count is: ' + event.data);
//document.write(event.data);
document.getElementById("showtag").innerHTML=event.data;
};
</script>
</body>
</html>
如果在工控机上使用XP或WIN7做数据采集处理,用websocket方式显示还是比较方便的,原来开发的程序也不用大改动。浏览器发送数据用 [socket].send, 接收数据用 [socket].onmessage;应用程序端用 STDIN 接收数据, 用STDOUT返回数据。