vb.net编的web程序如何生成并且发布在sever2003服务器上并且用IE浏览器访问

vb.net编的web程序如何生成并且发布在sever2003服务器上并且用IE浏览器访问,第1张

什么IIS架构。晕~~~

1首先正式版本的发布你必须要Release,不要直接把Debug程序放上去。

2将所有的cs文件删除。vsnet有一个很方便的工具,“项目——复制项目”就ok了。

3windows server2003上一定要安装了"Internet 信息服务(IIS)管理器",如果没有安装的话可以到“控制面板——添加或删除程序——添加\删除WINDOWS组件——应用程序服务器”如果“应用程序服务器”没有构选的话钩上,放入windows 2003的系统盘安装。

4安装完成之后把项目靠到服务器上。简单一点的方法是右键点击项目文件夹,Web共享——共享文件夹。此时就算发布成功了。不过还有一些细节需要注意。如:IIS匿名访问等。那就是另外的问题了。呵呵。IIS设置很简单,可以在网上找些资料。

第一章、总体目标

为真正实现数据通信、语音及多媒体信息的收集及处理功能,必须首先进行综合布线系统的建设,将办公大楼内所有信息点均规划进行结构化布线 PDS 系统,为大楼提供网络系统的运行平台。对布线系统的设计施工,应充分考虑满足将来整个应用系统硬件的升级和扩充,保证布线系统在较长的时间内保持先进性。而建设综合布线系统,仅仅完成了第一步工作。还需选择性能价格比佳的网络设备,进行组网调试工作。

目 录

第一章、总体目标

第二章、综合布线系统设计方案

第三章、工程质量管理

第四章、网络结构及设备选型

第五章、程控交换机系统设计

第二章、综合布线系统设计方案

一、布线系统需求

采用综合布线(PDS),网络采用 100M 快速以太网

二、IBDN PDS 布线系统

NCRDX 公司是世界上著名结构化布线产品的生产商,其产品符合国际 EIA/TIA

的产品标准,其结构化布线产品也得到了我国政府的认可。在设计、开发、制造以及部署电缆,布线系统和电缆管理解决方案的领域已有百多年的专业经验,在建立和规范工业标准方面的领先地们在世界内无与伦比。1995

年率先推出用于自动网络管理的 DYNATRAX NORDXDE 的 IBDN

智能布线解决方案不仅具有当今最好的端到端性能,同时提供多种品质超群的解决方案,能全面满足用户对商业通信基础结构的各项需求,使他们享有高效率,安全性和管理性能,顺应现在以至未来的需求。

数据传输速度和应用不断发展,IBDN的PDS系统能够传递语音、数据、视频和图象信号,由于其结构化设计思想,PDS具有良好的扩展性,最大限度地满足未来设备的变更和移动的需要。同时可以通过跳线及更换适配器来随时、任意地改变网络的拓朴结构,以满足不断发展的网络需求。

三、PDS 布线系统的主要优势

实用性 实施布线系统后能够满足现在和未来通讯技术的发展,实现语音、数据信息一体化。

灵活性 此系统能够满足不同应用的需求。一个信息点可以连接不同的终端设备,如电话、计算机、打印机等,而管理员所需作的事情是简单的跳线完成线路定位。扩充性 布线系统可以十分方便地进行扩充,满足今后的发展。 选用国际著名公司 NORDX 成熟的结构化布线系统产品 PDS,依据本公司长期以来布线系统设计和安装实践积累的丰富经验,并结合公楼的具体特点和用户需求,综合考虑各个方面的因素,设计了电脑等系统的综合布线实施方案。

四、布线系统采用的标准

设计标准

除依据对用户的需求分析外,还应严格依据以下标准:

IEEE 8023 10--BASE--T,10BASE--F

IEEE 8025 TOKEN RING

EIA/TIA 568,569,EIA/TIA--TSB36/40,67 商业建筑综合布线标准(94 年修订版)

IEEE 80212 100BASE T 局域网标准

ISO/IEC JTCI/SC25/WG3

ANSI FDDI/TPDDI

ANSI X3T95

安装与设计规范:

中国工程建设标准化协会标准

建筑与建筑群综合布线系统工程设计规范(1997)

中国建筑电气设计规范

工业企业通讯设计规范

IBD 开放式布线系统PDS设计总则与安装规范

五、规划

整个综合布线系统采用星型结构,其优点是提供互相独立、互不影响的信道,分布式管理,易于重组,支持多种应用。水平布线采用超五类布线系统器件,以保证传输质量和应用的灵活性。

六、布点设计原则

1、信息点分布

根据 XX 市政府办公楼办公区的初步安排和 XX 市政府的实际需求,我们初步设计 XX 市政府办公楼综合布线信息点为 40个。

两栋楼共设信息点 40 个,所有信息点均按超五类标准设计,达到 100M

的数据传输速度并且所有的信息点通过跳线均可达到语音、数据通用。在主楼2楼微机中心设置网络中心控制间(MDT间),将主配线架(MDT)放在中心控制室,同时可将程控交换机放置在中心控制室,在中心控制室旁,设置网络中心机房,放置网络服务器。因为2楼中心控制室到最远信息点的垂直距离加水平距离之和小于

90M,为了便于集中管理,在每层我们不再设水平配线间(IDT),所有配线和管理均在中心控制室主配线间进行,线缆从主配线间直接到各个信息点,所有信息点均采用暗盒方式。所有综合布线产品我们均采用IBDN超五类产品,即超五类双绞线、超五类信息插座、超五类快速跳线、超五类

BIX 模块等,能提拱 100M 的数据传输速度,满足高速以太网及 ATM 网络数据传输的需求,从而为高速数据转输打下了基础。

中心机房设备要求:

标准机柜,主要安装网络设备并提供跳接线之管理。机房设备安置考虑机房维护人员维修的方便,同时机器四周有足够的散热空间。

机房要求有独立接地保护系统,地阻值不大于 4 欧姆。机房需设置独立电源回路。

七、综合布线各子系统简介

1、工作区子系统

系统说明:

工程中布线系统全部采用 IBDN 超五类,依非屏蔽双绞线照这一标准,每个信息点均能满足 100M

的数据传输速度,足以支持现有数据、语音系统以及今后的高速数据及视频系统的需求。

2水平布线子系统设计

◆ 区域说明:

水平区系统采用星型拓扑结构延伸主干系统到工作区,并端接在信息插座上。

◆ 系统说明:

水平线从楼层配线架引出进入主走线槽,沿线槽分到不同的布线管到墙面信息安装盒,整个布线距离必须在 90m

以内,确保数据信号在正常的衰减范围内。信息点的水平布线采用超五类非屏蔽双绞线。

(3) 主配线管理子系统

◆ 区域说明:

管理区在中心机房放置通讯布线设备,通过互跳连接各水平区。主要元器件为配线架、跳线等。

大楼综合结构化布线系统的组成

◆ 系统说明:

数据配线管理系统建议采用非常适合于数据系统的 IBDN 系列模块式配线架。数据配线架装在标准机柜内,并可加锁以保安全。

根据本系统的特点,我们在工程设计中未采用垂直主干线系统及设备间主系统。

八、所需设备材料明细和费用预算:

第三章、工程质量管理

一、“随装随测”的施工新概念

网络的电缆安装是一个以体力为主的工作。为排除人为的错误因素,确保安装交付的产品性能和质量的要求,就必须进行最终的测试。

今天,要高效安装新的网络布线的单位都希望保证在未来的若干年内他们的投资不致浪费,他们特别要求安装的电缆和相关的硬件要符合 TIA568

年定义的超五类线电缆规范。然而,如果我们使用了最高级的部件完成电缆布线,能够达到用户的期望吗?这完全取决于安装工艺和施工经验。

那么,哪些总是会改变布线的性能呢?在最终测试阶段会遇到的故障一般分为两类:

连接故障

即在一个链路中各个独立的缆线间的连接和终结故障。目前来说,这是最常见的故障。它与安装过程中的工艺水平紧密相关。最常见的故障是:电缆标签错、连接开路、双绞线连接图错(包括错对、极性接反、交错)以及短路。

电缆性能问题

在链路没有连接错误的情况下,还可能存在不满足支持网络运行的必须的传输特性问题。链路的传输特性主要由衷减、近端串扰(NEXT)、特性阻抗、峰值噪音及信噪比来决定,这些总是称作性能故障。

二、工程实施

〈一〉工程主要内容

工程设计所有系统的细则设计

水平布线

布线的标识

插座与配线架安装

测试

提供所有工程安装图及表格

系统培训

(二)工程施工

工程施工所遵循的标准

对各种线路的走向,分配做出明确的标识,并在每根线的两端进行识别标记。

(三)信息插座管理:

对插座内线对分配、插座的编号、可联接的设备,是否开通均做出标识与记录。

(四)配线架管理:

对每一口都需建立与之联结的插座或相连接配线架的统一编号,按分类排列配线架, 记录配线架上各口分配给的设备与用途。

(五)跳线管理

采用不同颜色的跳线区分对不同设备的跳接。利用整线架保持跳线的整齐。

(六)工作区施工事项

端接超五类信息插座时,超五类线剥头露出外皮距离要尽量短,并且需要顺其绞和方向多转一周,以确保接时不破坏超五类双绞线的绞和度,以致影响其超五类传输标准。

预留信息插座底座时,在分线管入口处套上橡胶保护套或磨去接口处的快口,保证水平线引旱灾时不被入口处的快口割破。

(七)水平区子系统施工事项

布线施工前,配合土建工程认真对线槽走向进行勘测,尽量同强电线槽保持一定距离。

由工作区的各个信息点的分线管同主线槽结合部开始留线、拉线。在拉线前,首先用不褪色笔或专用套管对非屏蔽双绞线进行标号。拉线过程中,确保每根 UTP

线不发生过度扭曲、破损、断折等有损双绞线性能的情况。

对超五类配线架打线时,超五类线剥线时必须应尽量短,使内部双绞线外露尽量少;端接时,不可将双绞线打开,而是需要用手指将线从中段捻开一些后直接打线。否则,会破坏超五类线性能。

端接超五类大对数双绞线线时,为保证做到剥线尽量少,在端接时应严格按照主色顺序端接。

(八)设备区子系统施工事项

制作电气保护设备的接地,所有接地点同整个系统的弱电系统接地共接。

注意从所有楼层来的线缆编号,为方便施工,不将线缆搞错,因此,将各个线缆有规则的用捆扎线束缚。

配线架挂墙安装在厚度不小于 25mm 的涂防火漆的木板上。

三、系统测试

对综合布线系统(PDS)的测试分为三大步骤:

(一)对正在进行安装的 PDS 系统分子系统进行测试,可利用专用测试仪器对 PDS

各个子系统安装后的开路、短路、极性等能进行测试。极性测试时,可能造成噪声或电缆故障(测试参考值为 7500

欧或小于地线与导线之间的电阻值,均被认为是存在接地故障)。

(二)用传统仪器对已经安装完成的 PDS 工程进行系统测试

(三)测试报告

针对上述测试内容,我公司对每一个 PDS 工程都严格按照测试步骤进行测试,并向用户出具完整的测试报告。

测试工具的选择

面对新的标准,采用传统的模拟测量技术的电缆测试仪就面临严重挑战。模拟测量技术是发送多次不同频率的正弦信号对电缆进行测试的。那么如何保证测试的一致性和精度,如何排除电缆插座和插头的影响以及如何进行双向的近端串扰测试都成为问题。积半个多世纪测试仪器设备制造经验的美国FLUKE公司生产的FLUKE测试仪采用了专利的数字技术测试电缆,它不仅完全满足TSB-67所要求的二级精度标准,而且还具备更强大的测试和诊断功能。

FLUKE测试仪在测试电缆的时候,发送一个和网络实际传播的信号一致的脉冲信号,而采集该信号的时域响应,然后再对该时域信号进行数字信号处理,从而得到频域响应。这样一次测试就可替代上千次的模拟信号。

四、验收

双方根据测试报告给出的指标进行验收。测试结果均满足系统标准指标为验收合格。

五、维护和服务

1、质量保证:

首先,PDS 系统设计上要具有合理科学的设计方案和系统配置,这是由于我们的技术人员,在PDS系统设计及系统配置上具有较为雄厚的实力。

工程正式开工时,由本公司工程部管理人员将 PDS

工程所有进口材料样品送给甲方作封样,以便甲方监督工程中所使用材料与系统设计及施工图纸中所设计的进口材料的一致性。

工程在每一子系统完成后,公司工程都要进行公司内部的验收,并完成该子系统的测试工作,在本子系统完全合格后才能进行后续子系统的安装和施工。

2工程维护及服务

XX电脑公司所承担的综合布线系统工程的维护可分为二大类:

一是常规工程维护,即本公司对所承担的每一项综合布线工程定期(半年)进行常驻维护及检测。

二是非常规工程维护,即某项 PDS 工程若出现问题时,公司给用户的及时维护和服务。根据公司规定,对用户 PDS

工程非常规维护和服务按本市、本省、外省进行划分,执行接到用户通知定时(一般为 6 小时,12 小时,48

小时)到达现场,进行维护和服务。我公司对每一项 PDS 工程进行维护记录,并把维护记录定时整理给用户,并定期呈报 IBDN 公司。

本公司可根据客户需要提拱维护帮助,并优惠为用户进行后续升级。

六、人员培训

现场培训内容:

PDS 系统布线方法

布线系统的配置

系统测试方法

维护和保修技术

第四章、网络结构及设备选型

一、网络硬设备选型

1交换机

采用 Bay 公司的 Bay 350T 工作组交换机。该机具有 16 口 10/100M 自适应以太网端口, 具有扩展模块扩槽,可扩

100BASE-FX 快速以太网光纤模块和 ATM 槽块。支持 4080 以上的 MCA 地址,支持 PACE 技术,支持多达 16 个的 VLAN

管理功能,具有增强多媒体及实时应用的传输功能。

在各主干网段下的二级工作组拟采用 Bay 的 Bay303 交换机,它具有一个 10M/100M 和 24 个 10M 口。各信息点均实现 10M

交换到桌面。

2网卡的选择

高性能 Bay 的网卡具有独创的高速网卡技术,并选用高品质的 IC 器件,进而达到相当可靠和完善的功能和性能。

因此,它提出了终生保修的承诺。我们选用 Bay 的 Bay Fa310 10/100 自适应网卡,它具有双速,双工特性。能充分利用 4

对双绞线的物理特性,进而拓展带宽,成倍提升网络速率。

3网络服务器

网络服务器作为网络的中心处理部件,承担着网络处理工作的大部分负荷,因此选择一个处理能力强大,性能稳定的网络服务器对于我们所建设的网络的高效、流畅使用具有十分重要的作用。

结合 XX 市政府的工作需求,我们建议选择由美国 IBM 公司生产的服务器产品:PC SERVER330。

IBM PC SERVER330 服务器产品采用 333MHZ PentiumⅡ 处理器,配备 512KB 的 ECC 二级缓存,64MB EDO

ECC内存(可扩至 1GB),拥有集成的 PCI 总线,Wide Ultra SCSI 和 10/100Mbps

自适应网卡。它能够满足我们的网络需求,承担网络中心处理任务的负担。

4网络工作站

网络工作站作为用户的网络前端处理工具,在选择上应遵询好用、够用的原则,不能一味的追求高性能。同时在品牌的选择上,建议选择国内品牌机。主要理由如下:

国内的计算机发展水平从微机的角度上来说已与国际水平相差无几,往往国产的品牌机更能适合国内情况,性价比更适合国人的需求。

国产品牌机具有本地优势,能够更快速的提供优质、高效的服务,将用户的损失减低到最低程度。

<>

XX市政府办公楼计算机网络结构图

二、软件方案:

考虑到采用软件技术的成熟性,可靠性,及相互衔接的流畅性,我们作出如下选择

系统软件:

网络操作系统选择 Windows NT Server40 + Server pack3 中文版。

WEB 服务采用 Microsoft IIS40,提供 WEB、FTP、Gopher 服务。

电子邮件及消息服务器采用 Microsoft Exchange Server55 中文版。

代理服务器为 Microsoft Proxy Server20。

网络会议服务器为 Microsoft Internet Locate Server20。

数据库为Microsoft SQL Server 65。

客户端软件:

客户端软件全部采用 Win95 或 Windows NT Workstation 40 操作系统,前端应用软件选用 MS OFFICE97 和

IE40 中文版。以及相关的基于 Win95 的数据库应用软件和各类专业应用软件。

以上所采用的软件大部为 Microsoft 公司的产品,技术先进,性能稳定,数据资源可以方便的实现共享。

开发软件:

1、WEB开发软件

主要采用Microsoft的Visual Studio 95 软件包,包括:

Visual Basic 50

Visual Foxpro 50

Visual J++ 11

OLE DB SDK 11

Visual C++ 50

FrontPage 98

Microsfot Access 97

Hot dog 45

2、数据库应用软件

采用基于 Client/Server 结构,客户端采用 PB60,VB50 或 VC50 等

数据库应用开发软件,运行于Win95之上。

三、网络设备费用预计:

这里的费用预算我们只计算了网络交换机和集线器的大约费用,其他费用可根据实际实施中所选的设备进行计算。

计算机网络系统设备明细及费用预算

第五章、程控交换机系统设计

程控交换机我们推荐 XX 程控交换机,其主要技术指标如下:

1、 内线容量16-1018门,外线8-48线,根据具体情况,本方案采用16外线、100内线;

通话绳 64 绳,语言信箱 1 个;

传输特性:分机——分机 <15db,分机——中继 <10db;

耐压:电源进线对地 50HZ/1500V/1 分钟,泄露电流 <5Ma;

拱电电压:200V±10%,50HZ±2HZ;

功耗:50~500W(据分机数而定);

使用环境:-10~40℃,相对湿度 <80%

功能简介:

1分机服务功能:

电话会议

来话代答

外线遇忙回叫

免打扰

自回叫

叫醒服务

长途直拔密码锁

自检故障

二、总机话务及功能

电脑话务员

总机对内线强插

总机对外线强插

外线直播或转接服务

总机代替分机拨外线

选定分机级别

全弹性编码

三、分机语音信箱

外线回电号码查询

内线回电号码查询

恶意电话追询

分机号码查询

总话费查询

分机级别查询

音乐

1计费功能(另需加计费卡)

具有内外部同时计算功能

话单立即输出

话单内部储存

手动、自动半价计费

能设入所有市话、郊区、国内长途、国际长途的区号及费率。

根据实际情况我们推荐使用 HDJ-256 100 门程控交换机

sendkey 肯定不行啊~~

算了

还是给你答案吧,但是你的分真少啊~~

'一个form,3个text,一个command

Private m_lOnBits(30)

Private m_l2Power(30)

Private Const BITS_TO_A_BYTE = 8

Private Const BYTES_TO_A_WORD = 4

Private Const BITS_TO_A_WORD = 32

Function Hex2Bin(HexStr1 As String)

Select Case UCase(HexStr1)

Case "0"

q1 = "0000"

Case "1"

q1 = "0001"

Case "2"

q1 = "0010"

Case "3"

q1 = "0011"

Case "4"

q1 = "0100"

Case "5"

q1 = "0101"

Case "6"

q1 = "0110"

Case "7"

q1 = "0111"

Case "8"

q1 = "1000"

Case "9"

q1 = "1001"

Case "A"

q1 = "1010"

Case "B"

q1 = "1011"

Case "C"

q1 = "1100"

Case "D"

q1 = "1101"

Case "E"

q1 = "1110"

Case "F"

q1 = "1111"

End Select

Hex2Bin = q1

End Function

Function Hex2Bin1(HexStr2 As String)

q1 = Hex2Bin(Mid(HexStr2, 1, 1))

q2 = Hex2Bin(Mid(HexStr2, 2, 1))

q3 = Hex2Bin(Mid(HexStr2, 3, 1))

q4 = Hex2Bin(Mid(HexStr2, 4, 1))

q5 = Hex2Bin(Mid(HexStr2, 5, 1))

q6 = Hex2Bin(Mid(HexStr2, 6, 1))

q7 = Hex2Bin(Mid(HexStr2, 7, 1))

q8 = Hex2Bin(Mid(HexStr2, 8, 1))

q9 = Hex2Bin(Mid(HexStr2, 9, 1))

q10 = Hex2Bin(Mid(HexStr2, 10, 1))

q11 = Hex2Bin(Mid(HexStr2, 11, 1))

q12 = Hex2Bin(Mid(HexStr2, 12, 1))

Hex2Bin1 = q1 & q2 & q3 & q4 & q5 & q6 & q7 & q8 & q9 & q10 & q11 & q12

End Function

Function Bin324(BinCode1 As String)

q1 = Mid(BinCode1, 1, 6)

q2 = Mid(BinCode1, 7, 6)

q3 = Mid(BinCode1, 13, 6)

q4 = Mid(BinCode1, 19, 6)

q5 = Mid(BinCode1, 25, 6)

q6 = Mid(BinCode1, 31, 6)

q7 = Mid(BinCode1, 37, 6)

q8 = Mid(BinCode1, 43, 6)

Bin324 = "00" & q1 & "00" & q2 & "00" & q3 & "00" & q4 & "00" & q5 & "00" & q6 & "00" & q7 & "00" & q8

End Function

Function Bin2Hex(BinCode2 As String)

Select Case UCase(BinCode2)

Case "0000"

q1 = "0"

Case "0001"

q1 = "1"

Case "0010"

q1 = "2"

Case "0011"

q1 = "3"

Case "0100"

q1 = "4"

Case "0101"

q1 = "5"

Case "0110"

q1 = "6"

Case "0111"

q1 = "7"

Case "1000"

q1 = "8"

Case "1001"

q1 = "9"

Case "1010"

q1 = "A"

Case "1011"

q1 = "B"

Case "1100"

q1 = "C"

Case "1101"

q1 = "D"

Case "1110"

q1 = "E"

Case "1111"

q1 = "F"

End Select

Bin2Hex = q1

End Function

Function Bin2Hex2(BinCode As String)

q1 = Bin2Hex(Mid(BinCode, 1, 4))

q2 = Bin2Hex(Mid(BinCode, 5, 4))

q3 = Bin2Hex(Mid(BinCode, 9, 4))

q4 = Bin2Hex(Mid(BinCode, 13, 4))

Bin2Hex2 = q1 & q2 & q3 & q4

End Function

Function Bin2Hex3(BinCode3 As String)

q1 = Bin2Hex2(Mid(BinCode3, 1, 16))

q2 = Bin2Hex2(Mid(BinCode3, 17, 16))

q3 = Bin2Hex2(Mid(BinCode3, 33, 16))

q4 = Bin2Hex2(Mid(BinCode3, 49, 16))

Bin2Hex3 = q1 & q2 & q3 & q4

End Function

Function HexBase64(HexString As String)

HexBase64 = HexBase64_2(Bin2Hex3(Bin324(Hex2Bin1(HexString))))

End Function

Function HexBase64_1(HexString As String)

Select Case HexString

Case "00"

q1 = "A"

Case "01"

q1 = "B"

Case "02"

q1 = "C"

Case "03"

q1 = "D"

Case "04"

q1 = "E"

Case "05"

q1 = "F"

Case "06"

q1 = "G"

Case "07"

q1 = "H"

Case "08"

q1 = "I"

Case "09"

q1 = "J"

Case "0A"

q1 = "K"

Case "0B"

q1 = "L"

Case "0C"

q1 = "M"

Case "0D"

q1 = "N"

Case "0E"

q1 = "O"

Case "0F"

q1 = "P"

Case "10"

q1 = "Q"

Case "11"

q1 = "R"

Case "12"

q1 = "S"

Case "13"

q1 = "T"

Case "14"

q1 = "U"

Case "15"

q1 = "V"

Case "16"

q1 = "W"

Case "17"

q1 = "X"

Case "18"

q1 = "Y"

Case "19"

q1 = "Z"

Case "1A"

q1 = "a"

Case "1B"

q1 = "b"

Case "1C"

q1 = "c"

Case "1D"

q1 = "d"

Case "1E"

q1 = "e"

Case "1F"

q1 = "f"

Case "20"

q1 = "g"

Case "21"

q1 = "h"

Case "22"

q1 = "i"

Case "23"

q1 = "j"

Case "24"

q1 = "k"

Case "25"

q1 = "l"

Case "26"

q1 = "m"

Case "27"

q1 = "n"

Case "28"

q1 = "o"

Case "29"

q1 = "p"

Case "2A"

q1 = "q"

Case "2B"

q1 = "r"

Case "2C"

q1 = "s"

Case "2D"

q1 = "t"

Case "2E"

q1 = "u"

Case "2F"

q1 = "v"

Case "30"

q1 = "w"

Case "31"

q1 = "x"

Case "32"

q1 = "y"

Case "33"

q1 = "z"

Case "34"

q1 = "0"

Case "35"

q1 = "1"

Case "36"

q1 = "2"

Case "37"

q1 = "3"

Case "38"

q1 = "4"

Case "39"

q1 = "5"

Case "3A"

q1 = "6"

Case "3B"

q1 = "7"

Case "3C"

q1 = "8"

Case "3D"

q1 = "9"

Case "3E"

q1 = "+"

Case "3F"

q1 = "/"

End Select

HexBase64_1 = q1

End Function

Function HexBase64_2(HexString As String)

q1 = HexBase64_1(Mid(HexString, 1, 2))

q2 = HexBase64_1(Mid(HexString, 3, 2))

q3 = HexBase64_1(Mid(HexString, 5, 2))

q4 = HexBase64_1(Mid(HexString, 7, 2))

q5 = HexBase64_1(Mid(HexString, 9, 2))

q6 = HexBase64_1(Mid(HexString, 11, 2))

q7 = HexBase64_1(Mid(HexString, 13, 2))

q8 = HexBase64_1(Mid(HexString, 15, 2))

HexBase64_2 = q1 & q2 & q3 & q4 & q5 & q6 & q7 & q8

End Function

Function Hex2Base64(HexCode As String)

For i = 0 To Len(HexCode) Step 12

q1 = q1 & HexBase64(Mid(HexCode, i + 1, 12))

Next

Hex2Base64 = q1

End Function

Private Function md5_F(X, Y, z)

md5_F = (X And Y) Or ((Not X) And z)

End Function

Private Function md5_G(X, Y, z)

md5_G = (X And z) Or (Y And (Not z))

End Function

Private Function md5_H(X, Y, z)

md5_H = (X Xor Y Xor z)

End Function

Private Function md5_I(X, Y, z)

md5_I = (Y Xor (X Or (Not z)))

End Function

Private Sub md5_FF(a, b, c, d, X, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), X), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Sub md5_GG(a, b, c, d, X, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), X), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Sub md5_HH(a, b, c, d, X, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), X), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Sub md5_II(a, b, c, d, X, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), X), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Function ConvertToWordArray(sMessage)

Dim lMessageLength

Dim lNumberOfWords

Dim lWordArray()

Dim lBytePosition

Dim lByteCount

Dim lWordCount

Const MODULUS_BITS = 512

Const CONGRUENT_BITS = 448

lMessageLength = Len(sMessage)

lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) (MODULUS_BITS \ BITS_TO_A_WORD)

ReDim lWordArray(lNumberOfWords - 1)

lBytePosition = 0

lByteCount = 0

Do Until lByteCount >= lMessageLength

lWordCount = lByteCount \ BYTES_TO_A_WORD

lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) BITS_TO_A_BYTE

lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)

lByteCount = lByteCount + 1

Loop

lWordCount = lByteCount \ BYTES_TO_A_WORD

lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) BITS_TO_A_BYTE

lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)

lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)

lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)

ConvertToWordArray = lWordArray

End Function

Private Function WordToHex(lValue)

Dim lByte

Dim lCount

For lCount = 0 To 3

lByte = RShift(lValue, lCount BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)

WordToHex = WordToHex & Right("0" & Hex(lByte), 2)

Next

End Function

Public Function MD5(sMessage, stype)

m_lOnBits(0) = CLng(1)

m_lOnBits(1) = CLng(3)

m_lOnBits(2) = CLng(7)

m_lOnBits(3) = CLng(15)

m_lOnBits(4) = CLng(31)

m_lOnBits(5) = CLng(63)

m_lOnBits(6) = CLng(127)

m_lOnBits(7) = CLng(255)

m_lOnBits(8) = CLng(511)

m_lOnBits(9) = CLng(1023)

m_lOnBits(10) = CLng(2047)

m_lOnBits(11) = CLng(4095)

m_lOnBits(12) = CLng(8191)

m_lOnBits(13) = CLng(16383)

m_lOnBits(14) = CLng(32767)

m_lOnBits(15) = CLng(65535)

m_lOnBits(16) = CLng(131071)

m_lOnBits(17) = CLng(262143)

m_lOnBits(18) = CLng(524287)

m_lOnBits(19) = CLng(1048575)

m_lOnBits(20) = CLng(2097151)

m_lOnBits(21) = CLng(4194303)

m_lOnBits(22) = CLng(8388607)

m_lOnBits(23) = CLng(16777215)

m_lOnBits(24) = CLng(33554431)

m_lOnBits(25) = CLng(67108863)

m_lOnBits(26) = CLng(134217727)

m_lOnBits(27) = CLng(268435455)

m_lOnBits(28) = CLng(536870911)

m_lOnBits(29) = CLng(1073741823)

m_lOnBits(30) = CLng(2147483647)

m_l2Power(0) = CLng(1)

m_l2Power(1) = CLng(2)

m_l2Power(2) = CLng(4)

m_l2Power(3) = CLng(8)

m_l2Power(4) = CLng(16)

m_l2Power(5) = CLng(32)

m_l2Power(6) = CLng(64)

m_l2Power(7) = CLng(128)

m_l2Power(8) = CLng(256)

m_l2Power(9) = CLng(512)

m_l2Power(10) = CLng(1024)

m_l2Power(11) = CLng(2048)

m_l2Power(12) = CLng(4096)

m_l2Power(13) = CLng(8192)

m_l2Power(14) = CLng(16384)

m_l2Power(15) = CLng(32768)

m_l2Power(16) = CLng(65536)

m_l2Power(17) = CLng(131072)

m_l2Power(18) = CLng(262144)

m_l2Power(19) = CLng(524288)

m_l2Power(20) = CLng(1048576)

m_l2Power(21) = CLng(2097152)

m_l2Power(22) = CLng(4194304)

m_l2Power(23) = CLng(8388608)

m_l2Power(24) = CLng(16777216)

m_l2Power(25) = CLng(33554432)

m_l2Power(26) = CLng(67108864)

m_l2Power(27) = CLng(134217728)

m_l2Power(28) = CLng(268435456)

m_l2Power(29) = CLng(536870912)

m_l2Power(30) = CLng(1073741824)

Dim X

Dim k

Dim AA

Dim BB

Dim CC

Dim DD

Dim a

Dim b

Dim c

Dim d

Const S11 = 7

Const S12 = 12

Const S13 = 17

Const S14 = 22

Const S21 = 5

Const S22 = 9

Const S23 = 14

Const S24 = 20

Const S31 = 4

Const S32 = 11

Const S33 = 16

Const S34 = 23

Const S41 = 6

Const S42 = 10

Const S43 = 15

Const S44 = 21

X = ConvertToWordArray(sMessage)

a = &H67452301

b = &HEFCDAB89

c = &H98BADCFE

d = &H10325476

For k = 0 To UBound(X) Step 16

AA = a

BB = b

CC = c

DD = d

md5_FF a, b, c, d, X(k + 0), S11, &HD76AA478

md5_FF d, a, b, c, X(k + 1), S12, &HE8C7B756

md5_FF c, d, a, b, X(k + 2), S13, &H242070DB

md5_FF b, c, d, a, X(k + 3), S14, &HC1BDCEEE

md5_FF a, b, c, d, X(k + 4), S11, &HF57C0FAF

md5_FF d, a, b, c, X(k + 5), S12, &H4787C62A

md5_FF c, d, a, b, X(k + 6), S13, &HA8304613

md5_FF b, c, d, a, X(k + 7), S14, &HFD469501

md5_FF a, b, c, d, X(k + 8), S11, &H698098D8

md5_FF d, a, b, c, X(k + 9), S12, &H8B44F7AF

md5_FF c, d, a, b, X(k + 10), S13, &HFFFF5BB1

md5_FF b, c, d, a, X(k + 11), S14, &H895CD7BE

md5_FF a, b, c, d, X(k + 12), S11, &H6B901122

md5_FF d, a, b, c, X(k + 13), S12, &HFD987193

md5_FF c, d, a, b, X(k + 14), S13, &HA679438E

md5_FF b, c, d, a, X(k + 15), S14, &H49B40821

md5_GG a, b, c, d, X(k + 1), S21, &HF61E2562

md5_GG d, a, b, c, X(k + 6), S22, &HC040B340

md5_GG c, d, a, b, X(k + 11), S23, &H265E5A51

md5_GG b, c, d, a, X(k + 0), S24, &HE9B6C7AA

md5_GG a, b, c, d, X(k + 5), S21, &HD62F105D

md5_GG d, a, b, c, X(k + 10), S22, &H2441453

md5_GG c, d, a, b, X(k + 15), S23, &HD8A1E681

md5_GG b, c, d, a, X(k + 4), S24, &HE7D3FBC8

md5_GG a, b, c, d, X(k + 9), S21, &H21E1CDE6

md5_GG d, a, b, c, X(k + 14), S22, &HC33707D6

md5_GG c, d, a, b, X(k + 3), S23, &HF4D50D87

md5_GG b, c, d, a, X(k + 8), S24, &H455A14ED

md5_GG a, b, c, d, X(k + 13), S21, &HA9E3E905

md5_GG d, a, b, c, X(k + 2), S22, &HFCEFA3F8

md5_GG c, d, a, b, X(k + 7), S23, &H676F02D9

md5_GG b, c, d, a, X(k + 12), S24, &H8D2A4C8A

md5_HH a, b, c, d, X(k + 5), S31, &HFFFA3942

md5_HH d, a, b, c, X(k + 8), S32, &H8771F681

md5_HH c, d, a, b, X(k + 11), S33, &H6D9D6122

md5_HH b, c, d, a, X(k + 14), S34, &HFDE5380C

md5_HH a, b, c, d, X(k + 1), S31, &HA4BEEA44

md5_HH d, a, b, c, X(k + 4), S32, &H4BDECFA9

md5_HH c, d, a, b, X(k + 7), S33, &HF6BB4B60

md5_HH b, c, d, a, X(k + 10), S34, &HBEBFBC70

md5_HH a, b, c, d, X(k + 13), S31, &H289B7EC6

md5_HH d, a, b, c, X(k + 0), S32, &HEAA127FA

md5_HH c, d, a, b, X(k + 3), S33, &HD4EF3085

md5_HH b, c, d, a, X(k + 6), S34, &H4881D05

md5_HH a, b, c, d, X(k + 9), S31, &HD9D4D039

md5_HH d, a, b, c, X(k + 12), S32, &HE6DB99E5

md5_HH c, d, a, b, X(k + 15), S33, &H1FA27CF8

md5_HH b, c, d, a, X(k + 2), S34, &HC4AC5665

md5_II a, b, c, d, X(k + 0), S41, &HF4292244

md5_II d, a, b, c, X(k + 7), S42, &H432AFF97

md5_II c, d, a, b, X(k + 14), S43, &HAB9423A7

md5_II b, c, d, a, X(k + 5), S44, &HFC93A039

md5_II a, b, c, d, X(k + 12), S41, &H655B59C3

md5_II d, a, b, c, X(k + 3), S42, &H8F0CCC92

md5_II c, d, a, b, X(k + 10), S43, &HFFEFF47D

md5_II b, c, d, a, X(k + 1), S44, &H85845DD1

md5_II a, b, c, d, X(k + 8), S41, &H6FA87E4F

md5_II d, a, b, c, X(k + 15), S42, &HFE2CE6E0

md5_II c, d, a, b, X(k + 6), S43, &HA3014314

md5_II b, c, d, a, X(k + 13), S44, &H4E0811A1

md5_II a, b, c, d, X(k + 4), S41, &HF7537E82

md5_II d, a, b, c, X(k + 11), S42, &HBD3AF235

md5_II c, d, a, b, X(k + 2), S43, &H2AD7D2BB

md5_II b, c, d, a, X(k + 9), S44, &HEB86D391

a = AddUnsigned(a, AA)

b = AddUnsigned(b, BB)

c = AddUnsigned(c, CC)

d = AddUnsigned(d, DD)

Next

If stype = 32 Then

MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))

Else

MD5 = LCase(WordToHex(b) & WordToHex(c))

End If

End Function

Private Function AddUnsigned(lX, lY)

Dim lX4

Dim lY4

Dim lX8

Dim lY8

Dim lResult

lX8 = lX And &H80000000

lY8 = lY And &H80000000

lX4 = lX And &H40000000

lY4 = lY And &H40000000

lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)

If lX4 And lY4 Then

lResult = lResult Xor &H80000000 Xor lX8 Xor lY8

ElseIf lX4 Or lY4 Then

If lResult And &H40000000 Then

lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8

Else

lResult = lResult Xor &H40000000 Xor lX8 Xor lY8

End If

Else

lResult = lResult Xor lX8 Xor lY8

End If

AddUnsigned = lResult

End Function

Private Function LShift(lValue, iShiftBits)

If iShiftBits = 0 Then

LShift = lValue

Exit Function

ElseIf iShiftBits = 31 Then

If lValue And 1 Then

LShift = &H80000000

Else

LShift = 0

End If

Exit Function

ElseIf iShiftBits < 0 Or iShiftBits > 31 Then

ErrRaise 6

End If

If (lValue And m_l2Power(31 - iShiftBits)) Then

LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) m_l2Power(iShiftBits)) Or &H80000000

Else

LShift = ((lValue And m_lOnBits(31 - iShiftBits)) m_l2Power(iShiftBits))

End If

End Function

Private Function RShift(lValue, iShiftBits)

If iShiftBits = 0 Then

RShift = lValue

Exit Function

ElseIf iShiftBits = 31 Then

If lValue And &H80000000 Then

RShift = 1

Else

RShift = 0

End If

Exit Function

ElseIf iShiftBits < 0 Or iShiftBits > 31 Then

ErrRaise 6

End If

RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)

If (lValue And &H80000000) Then

RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))

End If

End Function

Private Function RotateLeft(lValue, iShiftBits)

RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))

End Function

Public Function Str2QQPwdHash(Str1 As String)

Str2QQPwdHash = Hex2Base64(MD5(Str1, 32)) & "=="

End Function

Private Sub Form_Load()

Dim QQPath, QQNum, QQPass

QQPath = "E:\聊天工具\QQ\QQexe" 'QQ所在路径

QQNum = "100000" 'QQ号码

QQPass = "阿苏达三" 'QQ密码

Shell QQPath & " /START QQUIN:" & QQNum & " PWDHASH:" & Str2QQPwdHash(Trim(QQPass)) & " /STAT:40" '在线为41,隐身为40

End '不想form退出,此处的end删除或加'

End Sub

WebService是一个热门话题。但是,WebService究竟是什么?什么情况下应该用WebService?什么情况下不应该用WebService?是需要我们正确认识的。

实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用WebService会带来极大的好处。

长项一:跨防火墙的通信

如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。

图1通过WebService集成应用程序

举个例子,在应用程序里加入一个新页面,必须先建立好用户界面(Web页面),并在这个页面后面,包含相应商业逻辑的中间层组件,还要再建立至少一个ASP页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最后还要把“结果页”送回浏览器。要是客户端代码不再如此依赖于HTML表单,客户端的编程就简单多了。

如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的那一步。要调用WebService,可以直接使用MicrosoftSOAPToolkit或NET这样的SOAP客户端,也可以使用自己开发的SOAP客户端,然后把它和应用程序连接起来。不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性。同时,应用程序也不再需要在每次调用中间层组件时,都跳转到相应的“结果页”。

从经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构,可以节省花在用户界面编程上20%的开发时间。另外,这样一个由WebService组成的中间层,完全可以在应用程序集成或其它场合下重用。最后,通过WebService把应用程序的逻辑和数据“暴露”出来,还可以让其它平台上的客户重用这些应用程序。

长项二:应用程序集成

企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。

例如,有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。这两个程序来自不同软件厂商。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。通过在订单执行程序上面增加一层WebService,订单执行程序可以把“AddOrder”函数“暴露”出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。

长项三:B2B的集成

用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。

WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。

用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。

长项四:软件和数据重用

软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,另一种形式是二进制形式的组件重用。

图2用WebService集成各种应用中的功能,为用户提供一个统一的界面

当前,像表格控件或用户界面控件这样的可重用软件组件,在市场上都占有很大的份额。但这类软件的重用有一个很大的限制,就是重用仅限于代码,数据不能重用。原因在于,发布组件甚至源代码都比较容易,但要发布数据就没那么容易,除非是不会经常变化的静态数据。

WebService在允许重用代码的同时,可以重用代码背后的数据。使用WebService,再也不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的WebService就可以了。举个例子,要在应用程序中确认用户输入的地址,只需把这个地址直接发送给相应的WebService,这个WebService就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址是否在相应的邮政编码区域。WebService的提供商可以按时间或使用次数来对这项服务进行收费。这样的服务要通过组件重用来实现是不可能的,那样的话你必须下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的。

另一种软件重用的情况是,把好几个应用程序的功能集成起来。例如,要建立一个局域网上的门户站点应用,让用户既可以查询联邦快递包裹,查看股市行情,又可以管理自己的日程安排,还可以在线购买**票。现在Web上有很多应用程序供应商,都在其应用中实现了这些功能。一旦他们把这些功能都通过WebService“暴露”出来,就可以非常容易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。

将来,许多应用程序都会利用WebService,把当前基于组件的应用程序结构扩展为组件/WebService的混合结构,可以在应用程序中使用第三方的WebService提供的功能,也可以把自己的应用程序功能通过WebService提供给别人。两种情况下,都可以重用代码和代码背后的数据。

从以上论述可以看出,WebService在通过Web进行互操作或远程调用的时候是最有用的。不过,也有一些情况,WebService根本不能带来任何好处。

短处一:单机应用程序

目前,企业和个人还使用着很多桌面应用程序。其中一些只需要与本机上的其它程序通信。在这种情况下,最好就不要用WebService,只要用本地的API就可以了。COM非常适合于在这种情况下工作,因为它既小又快。运行在同一台服务器上的服务器软件也是这样。最好直接用COM或其它本地的API来进行应用程序间的调用。当然WebService也能用在这些场合,但那样不仅消耗太大,而且不会带来任何好处。

短处二:局域网的同构应用程序

在许多应用中,所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。例如,有两个服务器应用程序需要相互通信,或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序。在这些程序里,使用DCOM会比SOAP/HTTP有效得多。与此相类似,如果一个NET程序要连接到局域网上的另一个NET程序,应该使用NETremoting。有趣的是,在NETremoting中,也可以指定使用SOAP/HTTP来进行WebService调用。不过最好还是直接通过TCP进行RPC调用,那样会有效得多。

总之,只要从应用程序结构的角度看,有别的方法比WebService更有效、更可行,那就不要用WebService。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » vb.net编的web程序如何生成并且发布在sever2003服务器上并且用IE浏览器访问

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情