用Java Socket开辟支持上千个并发的小型服务器(上)[Java编程]
本文“用Java Socket开辟支持上千个并发的小型服务器(上)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
JavaSocket
套接字(socket)为两台计算机之间的通信供应了一种机制,在JamesGosling注意到Java语言之前,套接字就早已大名鼎鼎.该语言只是让您没必要理解底层操作系统的细节就可以有效地利用套接字.
1客户机/服务器模子
在饭馆里,菜单上各种具有异国情调的食物映入你的眼帘,于是你要了一份pizza.几分钟后,你用力咀嚼浇着熔化的乳酪和其他你喜好的配料的热pizza.你不知道,也不想知道:侍者从那边弄来了pizza,在制作历程中加进了什么,以及配料是若何得到的.
上例中包含的实体有:美味的pizza、承受你定餐的侍者、制作pizza的厨房,当然还有你.你是定pizza的顾客或客户.制作pizza的历程关于你而言是被封装的.你的恳求在厨房中被处理,pizza制作完成后,由侍者端给你.
你所看到的就是一个客户机/服务器模子.客户机向服务器发送一个恳求或号令.服务器处理客户机的恳求.客户机和服务器之间的通讯是客户机/服务器模子中的一个重要构成部份,普通通过网络举行.
客户机/服务器模子是一个利用程序开辟框架,该框架是为了将数据的表示与其内部的处理和存储别脱离来而计划的.客户机恳求服务,服务器为这些恳求服务.恳求通过网络从客户机传送到服务器.服务器所举行的处理对客户机而言是躲藏的.一个服务器可认为多台客户机服务.
多台客户机拜候服务器
服务器和客户机不一定是硬件组件.它们可以是工作啊同一机械或差别机械上的程序.、
考虑一个航空定票系统中的数据输入程序:数据----乘客名、航班号、飞翔日期、目的地等可以被输入到前端----客户机的利用程序中.一旦数据输入之后,客户机将数据发送到后端----服务器端.服务器处理数据并在数据库中保存数据.客户机/服务器模子的重要性在于全部的数据都存放在同一地址.客户机从差别的地方拜候同一数据源,服务器对全部的输入数据利用一样的查验法则.
万维网为‘为什么要将数据的表示与其存储、处理别脱离来’供应了一个很好的例子.在Web上,你无需掌握终究用户用来拜候你数据的平台和软件.你可以考虑编写出实用与每一种潜在的目标平台的利用程序.
‘客户机/服务器利用程序的服务器部份’管理通过量个客户机拜候服务器的、多个用户同享的资源.表明‘客户机/服务器程序的服务器部份’强盛功效的最好例子应当是Web服务器,它通过Internet将HTML页传送给差别的Web用户.
Java编程语言中最基本的特点是在Java中成立的程序的代码的可移植性.因为具有其他语言所不具有的代码可移植性,Java答应用户只要编写一次利用程序,便可以在任何客户机系统上公布它,并可以让客户机系统注释该程序.这意味着:你只要写一次代码,就可以使其在任何平台上运行.
2协议
当你同朋友扳谈时,你们遵守一些暗含的法则(或协议).比方:你们俩不能同时开始说话,或持续不中止地说话.假如你们这样作的话,谁也不能理解对方所说的东西.当你说话时,你的朋友倾听,反之亦然.你们以双方都能理解的语言和速度举行对话.
当计算机之间举行通讯的时刻,也需求遵守一定的法则.数据以包的情势从一台机械发送到另一台.这些法则管理数据打包、数据传输速度和重新数据将其恢复成原始情势.这些法则被称为网络协议.网络协议是通过网络举行通讯的系统所遵守的一系列法则和惯例.连网软件普通实现有高低层次之分的多层协议.网络协议的例子有:TCP/IP、UDP、AppleTalk和NetBEUI.
Java供应了一个丰富的、支持网络的类库,这些类使得利用程序能便利地拜候网络资源.Java供应了两种通讯工具.它们是:利用用户报文协议(UDP)的报文和利用传输掌握协议/因特网协议(TCP/IP)的Sockets(套接字).
数据报包是一个字节数组从一个程序(发送程序)传送到另一个(承受程序).由于数据报服从UDP,不保证发出的数据包必须到达目的地.数据报并非可托赖的.因此,仅当传送少量数据时才利用,并且发送者和承受者之间的距离隔断不大,假定是网络交通顶峰,或承受程序正处理来自其他程序的多个恳求,就有机会呈现数据报包的丧失.
Sockets套接字用TCP来举行通讯.套接字模子同其他模子相比,优胜性在于其不受客户恳求来自何处的影响.只要客户机遵守TCP/IP协议,服务器就会对它的恳求供应服务.这意味着客户机可以是任何范例的计算机.客户机不再范围为UNIX、Windows、DOS或Macintosh平台,因此,网上全部遵守TCP/IP协议的计算机可以通过套接字彼此通讯.
以上是“用Java Socket开辟支持上千个并发的小型服务器(上)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |