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

相关推荐
superconvert13 小时前
主流流媒体的综合性能大 PK ( smart_rtmpd, srs, zlm, nginx rtmp )
websocket·ffmpeg·webrtc·hevc·rtmp·h264·hls·dash·rtsp·srt·flv
喵不拉几1 天前
WebSocket 协议
网络·websocket·网络协议
Flying_Fish_roe2 天前
Spring Boot-WebSocket相关问题
spring boot·后端·websocket
下一秒_待续3 天前
C# 使用Socket通信,新建WinForm服务端、客户端程序
websocket·c#·socket·winforms
一只小白菜~3 天前
实现实时Web应用,使用AJAX轮询、WebSocket、还是SSE呢??
前端·javascript·websocket·sse·ajax轮询
黑金IT4 天前
WebSocket vs. Server-Sent Events:选择最适合你的实时数据流技术
网络·python·websocket·网络协议·fastapi
Jiaberrr4 天前
如何在微信小程序中实现WebSocket连接
前端·javascript·websocket·微信小程序·小程序
bigcarp5 天前
linux + 宝塔 + django + websocket 部署
linux·websocket·django
weixin_473894775 天前
对WebSocket的理解
网络·websocket·网络协议
乐辞6 天前
WebSocket和HTTP协议有什么区别
websocket·网络协议·http