---- 音乐服务器(Music Server)是指一个提供音乐在线服务的服务器,它包括高端提供门户服务的网站、Web数据库和低端的操作平台、硬件设施。目前,在Internet和Intranet上有不少这样的站点,特别是在一些高速宽带的局域网中(如校园网),音乐服务器给上网的朋友提供了休闲娱乐的好去处,同时也给网站带来了较高的访问率。

  ----像其他站点一样,音乐服务器包括网站和硬件两个部分。硬件性能和服务器效率是成正比的,因而如何构建网站才是一个音乐服务器的关键。从目前来看,网站基本有两种类型:一种是运行在Unix / Linux环境下,采用Perl / C / Php / Java 等作CGI编程语言;一种是运行在Win NT Server 平台上,采用ASP / WinCGI 作后台语言。前者运行效率高,但结构复杂,比较适合大型站点;后者编程难度相对较低,而且采用ODBC驱动接口,数据库连接方便,特别适合作音乐服务器。

  ----一个基本的音乐服务器包括音乐在线欣赏、音乐排行榜、音乐主题检索和音乐下载等四个部分。下面将主要从技术角度来讨论如何实现以上功能。

  音乐主题数据库的规划

  ----音乐主题数据库是Web站点存储所需音乐资料的仓库,它的规划在很大程度上影响了整个网站的结构和效率。数据库中可以单独建成一张表单,也可以以主键和外键的形式建成多张表单。本例中为说明上的便利,建成如下单表框架: (music.mdb)

  音乐在线欣赏

  ----在线欣赏是指客户端利用播放器播放服务器端的音乐文件。其原理是当客户端向服务器提交音乐选单后,服务器生成相应的.m3u文件,并将该文件通过Http协议下行至客户端;客户端将被激发调用相应的播放器执行该文件,从而实现了音乐在线欣赏功能。目前支持.m3u文件的播放器有Winamp、Realplayer G2、 Musicmatch等。当这些播放器软件被正确安装在客户端时,就可以自动播放.m3u文件。所以解决问题的关键在于后台如何生成.m3u文件并下行到客户端。以下利用ASP中内置的FileSystem组件给出一种解决方案,并给出相应程序。

  <%

  dim choose,path,mydb,myset,SQL,fs,mp3

  ‘##### 获得list.htm表单中选中的歌曲项

  对应的id号,并赋给字串变量choose #####

  choose=“("

  for i=3 to request.form.count

  choose=choose+request.form(i)+“,"

  next

  choose=left(choose,len(choose)-1)+“)"

  ‘##### 判断choose变量,如果不包含任何id号,

  说明list.htm中没有选中任何歌曲,终止程序#####

  if choose=“()" then

  response.redirect(“list.htm")

  response.end

  end if

  ‘#####设置文件路径,需要把temp目录的权限设为

  对internet匿名用户具有read & write 权限 #####

  path=“E:\inetpub\wwwroot\temp\"

  ‘##### 创建文件对象 #####

  Set fs = CreateObject(“Scripting.FileSystemObject")

  Set mp3 = fs.CreateTextFile(path+“listen.m3u", True)

  ‘##### 创建数据库对象#####

  set mydb=server.createobject(“adodb.connection")

  mydb.open “music"

  ‘##### 检索数据库,获得歌曲信息 #####

  SQL=“select mp3name,url from "&dbname&

  “where id in "&choose

  set myset=tdb.execute(SQL)

  do while not myset.eof

  ‘##### 生成点播歌曲文件列表 #####

  mp3.Write(“http://"+myset(“url")+chr(10))

  myset.movenext

  loop

  ‘##### 更新数据库中的当天点播次数和

  总共点播次数 #####

  SQL=“update music set click=click+1,

  this=this+1 where id in "&choose

  mydb.execute(SQL)

  ‘##### 取消对象 #####

  set myset=nothing

  mydb.close

  set mydb=nothing

  mp3.close

  set mp3=nothing

  ‘##### 将该文件下载给用户#####

  response.redirect(“listen.m3u")

  response.end

  %>

  ----注意:利用这种方法时,要控制.m3u文件Http头的内容。在Winnt中可利用IIS设置.m3u文件类型的Mine内容。具体操作如下:启动IIS —> 选中音乐服务器所在的Web站点 —> 点击“属性” 按钮 —> 在出现的属性选项卡中点击“Http标题”卡 —> 点击“文件类型”按钮 —> 点击“新增类型”按钮 —> 在“相应的扩展名”中填入“.m3u”,在“内容类型”中填入“audio/mpegurl” —> 然后一路确定即可。

  音乐排行榜

  ----音乐排行榜是音乐服务器不可缺少的一项内容,其重要性不亚于一个站点的Pageview。它可以向歌迷即时提供信息、引导欣赏、动态地反映潮流趋势。

上海治疗阳痿医院程序希望你在看了这篇文章之后能打造一个好的属于你自己的音乐网站哦

转载于:https://www.cnblogs.com/chaorenman/p/4086547.html

asp网络编程:用ASP构建音乐服务器的方法相关推荐

  1. asp网络编程:用ASP实现网页BBS

    传统的网页BBS大多是采用CGI模式实现的,它的实现要求编程者既要掌握编程语言如Perl或C等,又要了解关于CGI模式的各项技术内容,因此要制作自己的网页BBS确实困难不小.ASP(Active Se ...

  2. asp网络编程:用ASP打开远端MDB文件的方法

    如果你用ODBC connection (DSN or DSN-less)来访问远端的(UNC path)数据库, OLEDB会出现以下错误信息: Microsoft OLE DB Provider ...

  3. ASP网络编程从入门到精通 下载

    <ASP网络编程从入门到精通> 清华大学出版社 特点: 面向ASP零基础读者,循序渐进 全面分析ASP技术细节 用代码描述个个知识点,操作性强 通过典型模块设计,体会ASP的奥妙 通过网上 ...

  4. Linux网络编程服务器模型选择之并发服务器(上)

    转载:http://www.cnblogs.com/lizhenghn/p/3617666.html 与循环服务器的串行处理不同,并发服务器对服务请求并发处理.循环服务器只能够一个一个的处理客户端的请 ...

  5. 客户和服务器之间响应的序列,网络编程-第五讲-TCP客户-服务器程序例子.pdf-原创力文档...

    网络编程 第五讲TCP客户-服务器程序例子 多进程并发服务器基本架构 pid_t pid; int listenfd, connfd; listenfd = Socket( ... ); /* fil ...

  6. Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例

    Java网络编程 Socket.ServerSocket 详解,方法介绍及完整代码示例 概念 什么是网络编程? 网络编程是指编写运行在多个设备(计算机)的程序,这些设备通过网络连接起来.当这些通过网络 ...

  7. 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信

    客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...

  8. Linux网络编程服务器模型选择之循环服务器

    转载:http://www.cnblogs.com/lizhenghn/p/3617608.html 在网络程序里面,通常都是一个服务器处理多个客户机,为了出个多个客户机的请求,服务器端的程序有不同的 ...

  9. Python核心编程(第3版)第2章网络编程中关于tcp/udp服务器和客户端实现代码的运行出错的修正

    在Python核心编程(第3版)第2章网络编程中, 关于tcp/udp服务器和客户端实现代码的运行会出现 ['str' does not support the buffer interface]之类 ...

  10. Linux网络编程 | 定时事件 :Linux常见定时方法、定时器链表、空闲断开

    文章目录 Linux定时方法 定时器链表 空闲断开 Linux定时方法 Linux中为我们提供了三种定时方法,分别是Socket超时选项,SIGALRM信号,I/O复用超时参数.下面一一对其进行介绍. ...

最新文章

  1. 来!咱们聊聊如何把缓存玩出一种境界!
  2. [游戏模版17] Win32 推箱子 迷宫
  3. 记录一次阿里架构师全程手写Spring MVC
  4. 【洛谷 1969】积木大赛
  5. 亚马逊标题自动抓取_如何为您的家人提供自动Amazon礼品卡津贴
  6. 基于Java+MyEclipse+Socket+GUI的网络通讯录(C#可以参考为WinForm通讯录结构大体类似)
  7. 西门子S7-300 PLC视频教程(百度网盘)收集于网络-供参考学习
  8. 微信小程序 13 排行榜的编写
  9. Pytorch - Tips
  10. BLE蓝牙应用生成Android/iOS APP以及小程序
  11. LabVIEW树形控件
  12. 打开viewer.jnlp文件
  13. 计算机导论5000字论文,计算机导论论文
  14. ios swift UIActivityIndicatorView 菊花 加载中...
  15. 海伦公式用计算机语言怎么写,python中海伦公式求取三角形面积的示例
  16. 新手村 - 第三站,认识均线系统
  17. excel 两组数据交点_适用于安卓,苹果手机的Excel程序
  18. windows server 2008的安装
  19. 1元云购微信支付功能开发 - 1元云购网站开发
  20. [BZOJ1677] [Usaco2005 Jan]Sumsets 求和

热门文章

  1. 联通手机卡欠费了无法转接人工服务?
  2. 常用图像插值算法分析与比较
  3. Async和Await简介
  4. OS X中的bundle
  5. 关于mysql数据库行级锁的使用(一)
  6. Cocos2d-x 地图行走的实现3:A*算法
  7. 今天碰到的angular 中的一个小坑
  8. archivedDataWithRootObject NSUserDefaults
  9. 文本的垂直居中 WPF
  10. 【转】visio画UML用例图没有include关系的解决方法