利用JAVA语言实现支持视频点播的WEB服务器(3)_Windows教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!
3. 网络连接:

  网络本身的概念并不难。我们想获得位于其他地方某台机器上的信息,并把它们移到这儿;或者相反。这与读写文件非常相似,只是文件存在于远程机器上,而且远程机器有权决定如何处理我们请求或者发送的数据。但大多数编程语言对网络编程都较困难,而Java最出色的一个地方就是它的"无痛苦连网"概念。有关连网的基层细节已被尽可能地提取出去,并隐藏在JVM以及Java的本机安装系统里进行控制。我们使用的编程模型是一个文件的模型;事实上,网络连接(一个"套接字")已被封装到系统对象里,所以可象对其他数据流那样采用同样的方法调用。除此以外,在我们处理另一个连网问题--同时控制多个网络连接--的时候,Java内建的多线程机制也是十分方便的。

服务器的主要任务是侦听建立连接的请求,这是由我们创建的特定服务器对象完成的。而客户机的任务是试着与一台服务器建立连接,这是由我们创建的特定客户机对象完成的。一旦连接建好,那么无论在服务器端还是客户机端,连接变成了一个IO数据流对象。从这时开始,我们可以象读写一个普通的文件那样对待连接。所以一旦建好连接,我们只需使用自己熟悉的IO命令即可。

  首先,server=new ServerSocket(80,acceptamount);

  生成一个服务器端的套接字。其中第一个参数是表示服务器的监听端口,端口是机器内独一无二的场所。有些时候,一个IP地址并不足以完整标识一个服务器。这是由于在一台物理性的机器中,往往运行着多个服务器(程序)。由IP表达的每台机器也包含了"端口"(Port)。我们设置一个客户机或者服务器的时候,必须选择一个无论客户机还是服务器都认可连接的端口。端口并不是机器上一个物理上存在的场所,而是一种软件抽象(主要是为了表述的方便)。客户程序知道如何通过机器的IP地址同它连接,但怎样才能同自己真正需要的那种服务连接呢(一般每个端口都运行着一种服务,一台机器可能提供了多种服务,比如HTTP和FTP等等)?端口编号在这里扮演了重要的角色,它是必需的一种二级定址措施。

  在HTTP协议中的默认服务端口是80,当然在小型社区中也可以使用其它的端口。本例中使用了默认服务端口。

Socket s=server.accept();

  这一句的作用是使服务器监听本机上的80端口,等待客户机的连接。在没有新的连接的情况下,服务器阻塞自身。当客户机连接到服务器后函数返回一个套接字。然后,通过套接字的输入,输出流即可用读取本机文件的方法与客户机进行通信。

(三)客户端设计

  在客户端,理想的装置是电视机,因为当前电视机普及率高,有线电视线路遍布各地,可重用资源广泛。但目前的电视机绝大多数是模拟电视机,它们只能接收模拟电视信号,无法接收数字电视信号,因此这种电视机的彩色图像和伴音质量并不是很高。而数字电视无论从价格,电台改造,线路改装等方面都存在很大的困难,短期内难以普及。那么能否有一种折衷方案,即使目前的模拟电视机也能接收数字电视信号呢?回答是肯定的。但它们必须附加一个被称作机顶盒(STB)的装置。

来源:网络搜集//所属分类:Windows教程/更新时间:2013-04-15
相关Windows教程