IIS5.1在Windows XP虚拟机上Perl脚本和exe cgi-bin配置要点

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返回数据。

相关推荐
brycegao3212 小时前
金融交易App客户端架构实战 | 模块化、WebSocket治理、多线路容灾全解
websocket·金融·组件化·android架构·客户端模块化·移动端稳定性·多线路网络
ttwuai4 小时前
XYGo Admin 扩展开发:WebSocket 事件注册与实时推送实战
python·websocket·网络协议·golang·后台框架
喵个咪19 小时前
实时游戏网络协议深度对比:KCP vs WebRTC vs WebSocket
后端·websocket·webrtc
AIFQuant2 天前
量化私募回测系统:高质量股票/外汇历史数据 API 选型与接入
python·websocket·金融·ai量化
下北沢美食家2 天前
WebSocket入门
网络·websocket·网络协议
zh路西法2 天前
【rosbridge-websocket】跨网络的ROS1与ROS2通讯法(上)
linux·网络·c++·python·websocket·网络协议
必胜刻3 天前
一个异步生成游戏功能的落地复盘:Redis Stream + WebSocket + 状态补偿
redis·websocket·golang·gin·状态补偿
dong__csdn3 天前
websocket实现简单的单聊、群聊demo
网络·websocket·网络协议
webmote3 天前
从零打造虚拟小智:用浏览器模拟 IoT 设备的实践之路
物联网·websocket·ai·大模型·llm·.net·小智
晓杰'3 天前
从0到1实现Balatro游戏后端(7):Boss Blind与特殊规则实现
后端·websocket·typescript·node.js·游戏开发·项目实战·nestjs