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

相关推荐
等一场春雨1 小时前
springboot 3 websocket react 系统提示,选手实时数据更新监控
spring boot·websocket·react.js
却道天凉_好个秋2 小时前
音视频学习(二十八):websocket-flv
websocket·音视频·flv
龙哥·三年风水1 天前
workman服务端开发模式-应用开发-vue-element-admin封装websocket
分布式·websocket·vue
ZoeLandia2 天前
WebSocket | 背景 概念 原理 使用 优缺点及适用场景
网络·websocket·网络协议
zquwei2 天前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
carterslam2 天前
解决:websocket 1002 connection rejected 426upgrade required
网络·websocket·网络协议
抓住鼹鼠不撒手2 天前
xterm.js结合websocket实现web ssh
前端·javascript·websocket
学前端的小朱2 天前
Echarts实现大屏可视化
websocket·echarts·nodejs·vue3·vite·koa·cors
龙少95434 天前
【Http,Netty,Socket,WebSocket的应用场景和区别】
java·后端·websocket·网络协议·http
m0_748232924 天前
前端在WebSocket中加入Token
前端·websocket·网络协议