导航:首页 > IDC知识 > 服务器实现

服务器实现

发布时间:2020-09-11 03:19:38

1、请教:一个服务器实现的问题~~~

用tcp无法达到广播模式效果,这个我已经尝试过很多次,A客户端的信息可以传到B,但B传不到A。而且无法像聊天室那样两个客户端同时交互。
以下是我用tcp做得聊天程序,用tcp大概只能到这效果了。

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class ChatClient extends Applet {

TextField tfName = new TextField(15); //姓名输入文本域
Button btConnect = new Button("连接"); //连接按钮
Button btDisconnect = new Button("断开连接");
TextArea tfChat = new TextArea(8,27); //显示聊天信息文本框
Button btSend = new Button("发送");
TextField tfMessage = new TextField(30); //聊天输入
java.awt.List list1 = new java.awt.List(9); //显示在线用户信息

Socket socket=null; //连接端口
PrintStream ps=null; //输出流
Listen listen=null; //监听线程

public void init() { //Applet初始化
tfChat.setEditable(false); //设置信息显示框为不可编辑
Panel panel1 = new Panel(); //实例化面板
Panel panel2 = new Panel();
Panel panel3 = new Panel();
tfChat.setBackground(Color.white); //设置组件背景颜色
panel1.setBackground(Color.orange);
panel2.setBackground(Color.pink);
panel3.setBackground(Color.orange);
panel1.add(new Label("姓名:")); //增加组件到面板上
panel1.add(tfName);
panel1.add(btConnect);
panel1.add(btDisconnect);
panel2.add(tfChat);
panel2.add(list1);
panel3.add(new Label("聊天信息"));
panel3.add(tfMessage);
panel3.add(btSend);
setLayout(new BorderLayout()); //设置Applet布局管理器
add(panel1, BorderLayout.NORTH); //增加面板到Applet上
add(panel2, BorderLayout.CENTER);
add(panel3, BorderLayout.SOUTH);
}

public boolean action(Event evt,Object obj){ //事件处理
try{
if(evt.target==btConnect){ //点击连接按钮
if (socket==null){
socket=new Socket(InetAddress.getLocalHost(),5656); //实例化一个套接字
ps=new PrintStream(socket.getOutputStream()); //获取输出流
StringBuffer info=new StringBuffer("INFO: ");
String userinfo=tfName.getText()+":"+InetAddress.getLocalHost().toString();
ps.println(info.append(userinfo)); //输出信息
ps.flush();
listen=new Listen(this,tfName.getText(),socket); //实例化监听线程
listen.start(); //启动线程
}
}
else if(evt.target==btDisconnect){ //点击断开连接按钮
disconnect(); //调用断开连接方法
}
else if(evt.target==btSend){ //点击发送按钮
if(socket!=null){
StringBuffer msg=new StringBuffer("MSG: ");
String msgtxt=new String(tfMessage.getText());
ps.println(msg.append(tfMessage.getText())); //发送信息
ps.flush();
}
}
}
catch (Exception ex){
ex.printStackTrace(); //输出错误信息
}
return true;
}

public void disconnect() { //断开连接方法
if(socket!=null){
ps.println("QUIT"); //发送信息
ps.flush();
}
}

class Listen extends Thread{ //监听服务器传送的信息
String name=null; //用户名
BufferedReader reader ; //输入流
PrintStream ps=null; //输出流
Socket socket=null; //本地套接字
ChatClient client=null; //客户端ChatClient实例

public Listen(ChatClient p,String n,Socket s) {
client=p;
name=n;
socket=s;

try{
reader = new BufferedReader(new InputStreamReader(s.getInputStream())); //获取输入流
ps=new PrintStream(s.getOutputStream()); //获取输出流

}
catch(IOException ex){
client.disconnect(); //出错则断开连接
ex.printStackTrace(); //输出错误信息
}
}

public void run(){
String msg=null;
while(socket!=null){
try{
msg=reader.readLine(); //读取服务器端传来信息
}
catch(IOException ex){
client.disconnect(); //出错则断开连接
ex.printStackTrace(); //输出错误信息
}
if (msg==null) { //从服务器传来的信息为空则断开此次连接
client.listen=null;
client.socket=null;
client.list1.removeAll();
return;
}
StringTokenizer st=new StringTokenizer(msg,":"); //分解字符串
String keyword=st.nextToken();

if(keyword.equals("newUser")) { //新用户连接信息
client.list1.removeAll(); //移除原有用户名
while(st.hasMoreTokens()) { //取得目前所有聊天室用户名
String str=st.nextToken();
client.list1.add(str); //增加到用户列表中
}
}
else if(keyword.equals("MSG")) { //聊天信息
String usr=st.nextToken();
client.tfChat.append(usr); //增加聊天信息到信息显示框
client.tfChat.append(st.nextToken("\0"));
client.tfChat.append("\n");
}
else if(keyword.equals("QUIT")) { //断天连接信息
System.out.println("Quit");
try{
client.listen=null;
client.socket.close(); //关闭端口
client.socket=null;
}
catch(IOException e){}
client.list1.removeAll(); //移除用户列表
return;
}
}
}
}
}

import java.net.*;
import java.io.*;
import java.util.*;

public class ChatServer {

static int port=5656; //端口号
static Vector clients=new Vector(10); //存储连接客户信息
static ServerSocket server=null; //建立服务器socket
static Socket socket=null; //套接字连接

public ChatServer() {
try {
System.err.println("Server start...");
server=new ServerSocket(port); //初始化服务器套接字
while(true){
socket=server.accept(); //等待连接
System.err.println(socket.getInetAddress()+"连接\n"); //得到客户机地址
Client client=new Client(socket); //实例化一个客户线程
clients.addElement(client); //增加客户线程到向量中
client.start(); //启动线程
notifyChatRoom(); //监视聊天室连接变化
}
}
catch(Exception ex) {
ex.printStackTrace(); //输出出错信息
}
}

public static void notifyChatRoom() {
StringBuffer newUser=new StringBuffer("newUser");
for(int i=0;i<clients.size();i++){
Client c=(Client)clients.elementAt(i);
newUser.append(":"+c.name); //客户端姓名字符串
}
sendClients(newUser); //发送信息到客户端
}

public static void sendClients(StringBuffer message){
for(int i=0;i<clients.size();i++){
Client client=(Client)clients.elementAt(i); //分别得到每个客户端的连接
client.send(message); //发送信息
}
}

public void closeAll() { //关闭所有连接
while(clients.size()>0) { //遍历整个Vector
Client client=(Client)clients.firstElement(); //得到一个客户端
try{
client.socket.close(); //关闭端口
}
catch(IOException ex){
ex.printStackTrace(); //输出错误信息
}
clients.removeElement(client); //移出客户端信息
}
}

public static void disconnect(Client c){ //断开客户端
try{
System.err.println(c.ip+"断开连接\n");
c.send(new StringBuffer("QUIT")); //向客户发送断开连接信息
c.socket=null; //关闭端口
}
catch(Exception ex){
ex.printStackTrace();
}
clients.removeElement(c); //移出客户端信息
}

public static void main(String[] args) {
new ChatServer(); //实例化一个ChatServer类
}

class Client extends Thread {
Socket socket; //连接端口
String name; //用户姓名
String ip; //客户端IP地址
BufferedReader reader ; //输入流
PrintStream ps; //输出流

public Client(Socket s){
socket=s;
try{
reader = new BufferedReader(new InputStreamReader(s.getInputStream())); //得到输入流
ps=new PrintStream(s.getOutputStream()); //得到输出流
String info=reader.readLine(); //读取接受到的信息
StringTokenizer stinfo=new StringTokenizer(info,":"); //分解字符串
String head=stinfo.nextToken(); //获取关键字
if(stinfo.hasMoreTokens())
name=stinfo.nextToken(); //获取用户名
if(stinfo.hasMoreTokens())
ip=stinfo.nextToken(); //获取IP地址
}
catch(IOException ex){
ex.printStackTrace();
}
}

public void send(StringBuffer msg) {
ps.println(msg); //输出信息
ps.flush();
}

public void run(){
while(true){
String line=null;
try{
line=reader.readLine(); //读取数据流
}
catch(IOException ex){
ex.printStackTrace(); //输出错误信息
ChatServer.disconnect(this); //断开连接
ChatServer.notifyChatRoom(); //更新信息
return;
}

if(line==null){ //客户离开
ChatServer.disconnect(this);
ChatServer.notifyChatRoom();
return;
}

StringTokenizer st=new StringTokenizer(line,":"); //分解字符串
String keyword=st.nextToken();

if(keyword.equals("MSG")){ //发送来的是聊天信息
StringBuffer msg=new StringBuffer("MSG:");
msg.append(name); //在信息上增加用户名
msg.append(st.nextToken("\0"));
ChatServer.sendClients(msg); //发送聊天语句到各个客户端
}
else if(keyword.equals("QUIT")){ //退出命令
ChatServer.disconnect(this); //断开连接
ChatServer.notifyChatRoom(); //刷新信息
}
}
}
}
}

2、如何用Java实现Web服务器

如何用Java实现Web服务器 一、HTTP协议的作用原理

WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:

(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。

(2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:

GET 路径/文件名 HTTP/1.0

文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。

(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。

3、两台服务器如何实现集群

硬件用路由器,软件嘛,操作系统用WIN2003 server enterprise 企业版,推荐一并安装R2升级包,所有机器组局域网,用一台千兆网卡做域控,架设流媒体服务器,其他机做为域成员加入进来,内网IP各用各的,外网用端口映射到一个IP,用域控做网络流量负载平衡,域控机器配置要强,如果你网络流量大,建议用专业级服务器,至强+2Gb+SCSI硬盘之类,看你环境要求了,如果必要可以上双至强,再用一台512mb内存的p4 2.0G以上机做备份域控,这样主域控上下线或重启或出故障不影响域内成员正常工作,备份域控凑合就可以了

求采纳

4、如何在自己的服务器实现下载

下载服务分两种,一种是HTTP一种是FTP

公司网站服务器是公网服务器么? 以供下载的文件如果是内部人员下载,用FTP吧,可以用账号来限制,推荐SERV-U软件,有破解的

如果是公共下载服务器,推荐HTTP下载,一般的网页服务器自带这功能,比如IIS或APACHE。把文件放到指定目录就行了

5、客户端/服务器端模型的实现

为实现数据共享、数据更新的便利,系统采用了客户端/服务器端模型,服务器端具有修改数据的权限,客户端只能浏览查看数据,这样也能保证数据的安全性。

由于 MapX 本来只作为单机版的控件,并未提供读取网络空间数据的能力,所以客户端/服务器端模型必须纯粹通过 VB 来实现。

图 5. 3 文本链接文件和视频链接文件的显示

图 5. 4 图片链接文件的显示

客户端/服务器端模型在矿山内部局域网内运行,所以必须保证局域网的畅通,各计算机能相互访问。客户端的数据有版本日期标志,客户端提供了更新数据的操作接口,当服务器端的数据更新后,客户端将从服务器端下载最新数据,覆盖掉本地的数据,同时更新数据的版本标志。具体实现如下。

在服务器端先要运行批处理命令:

net share map $ = App. path & " map" / unlimited / remark: " 矿山安全管理信息系统" 。

然后在 VB 中编码,具体关键代码如下:

Kill APPPATH & " map" & File1. List( i)

FileCopy " " & ServerName & " map $ " & File1. List( i) ,APPPATH & " tempmap "& File1. List( i)

ProgressBar1. value = ProgressBar1. value + 1

DoEvents’释放 CPU,防止程序不响应

由于网络病毒的泛滥,很多计算机都安装了防火墙软件。防火墙软件在阻止外界入侵的同时,也关闭了很多系统的网络服务。如果防火墙软件关闭了系统的默认共享服务,则系统将出现找不到服务器的错误。这时系统将采用第二种方案来传输数据,具体函数如下:

煤矿安全地理信息系统设计与开发

6、对于服务器开发需要学习什么?

服务器所用到的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。

7、服务器集群怎么实现?

·这里是系统区,建议你发到网络区去~~~那样你可能能得到更多网络达人的帮助

一、集群的基本概念

有一种常见的方法可以大幅提高服务器的安全性,这就是集群。

Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。

大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。

一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。

Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时,客户将能很快连接到新的应用服务上。

二、集群的硬件配置

镜像服务器双机

集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案,通常镜像服务的硬件配置需要两台服务器,在每台服务器有独立操作系统硬盘和数据存贮硬盘,每台服务器有与客户端相连的网卡,另有一对镜像卡或完成镜像功能的网卡。

镜像服务器具有配置简单,使用方便,价格低廉诸多优点,但由于镜像服务器需要采用网络方式镜像数据,通过镜像软件实现数据的同步,因此需要占用网络服务器的CPU及内存资源,镜像服务器的性能比单一服务器的性能要低一些。

有一些镜像服务器集群系统采用内存镜像的技术,这个技术的优点是所有的应用程序和网络操作系统在两台服务器上镜像同步,当主机出现故障时,备份机可以在几乎没有感觉的情况下接管所有应用程序。因为两个服务器的内存完全一致,但当系统应用程序带有缺陷从而导致系统宕机时,两台服务器会同步宕机。这也是内存镜像卡或网卡实现数据同步,在大数据量读写过程中两台服务器在某些状态下会产生数据不同步,因此镜像服务器适合那些预算较少、对集群系统要求不高的用户。

硬件配置范例:

网络服务器 两台

服务器操作系统硬盘 两块

服务器数据存贮硬盘 视用户需要确定

服务器镜像卡(部分软件可使用标准网卡) 两块

网络服务网卡 两块三、双机与磁盘阵列柜

与镜像服务器双机系统相比,双机与磁盘阵列柜互联结构多出了第三方生产的磁盘阵列柜,目前,豪威公司、精业公司等许多公司都生产有磁盘阵列柜,在磁盘阵列柜中安装有磁盘阵列控制卡,阵列柜可以直接将柜中的硬盘配置成为逻辑盘阵。磁盘阵列柜通过SCSI电缆与服务器上普通SCSI卡相连,系统管理员需直接在磁盘柜上配置磁盘阵列。

双机与磁盘阵列柜互联结构不采用内存镜像技术,因此需要有一定的切换时间(通常为60?D?D180秒),它可以有郊的避免由于应用程序自身的缺陷导致系统全部宕机,同时由于所有的数据全部存贮在中置的磁盘阵列柜中,当工作机出现故障时,备份机接替工作机,从磁盘阵列中读取数据,所以不会产生数据不同步的问题,由于这种方案不需要网络镜像同步,因此这种集群方案服务器的性能要比镜像服务器结构高出很多。

双机与磁盘阵列柜互联结构的缺点是在系统当中存在单点错的缺陷,所谓单点错是指当系统中某个部件或某个应用程序出现故障时,导致所有系统全部宕机。在这个系统中磁盘阵列柜是会导致单点错,当磁盘阵列柜出现逻辑或物理故障时,所有存贮的数据会全部丢失,因此,在选配这种方案时,需要选用一个品质与售后服务较好的产品。

硬件配置范例:

网络服务器 两台

服务器操作系统硬盘 两块

第三方生产的磁盘阵列柜 一台

磁盘柜专用SCSI电线 两根

磁盘阵列柜数据存贮硬盘 视用户需求确定

网络服务网卡 两块

除此之外,一些厂商还有更优秀的技术的解决方案,比如 HP.

四、HP双机双控容错系统

HP NetServer为双机双控容错系统提供了高品质和高可靠的硬件基础……

HP双机双控容错系统结合了HP服务器产品的安全可靠性与Cluster技术的优点,相互配合二者的优势。

硬件配置范例:

HP L系统的网络服务器 两台

服务器操作系统硬盘 两块

HP硬盘存贮柜(SS/6,RS/8,RS/12) 一台

磁盘柜专用SCSI集群适配电缆 两根

磁盘柜数据存贮硬盘 视用户需求确定

HP集群专用阵列卡 两块

网络服务网卡 两块五、HP光纤通道双机双控集群系统

光纤通道是一种连接标准,可以作为SCSI的一种替代解决方案,光纤技术具有高带宽、抗电磁干扰、传输距离远、质量高、扩展能力强等特性,目前在FC-AL仲裁环路上可接入126个设备。

光纤设备提供了多种增强的连接技术,大大方便了用户使用。服务器系统可以通过光缆远程连接,最大可跨越10公里的距离。它允许镜像配置,这样可以改善系统的容错能力。服务器系统的规模将更加灵活多变。SCSI每条通道最多可连接15个设备,而光纤仲裁环路最多可以连接126个设备。

光纤集群系统组成:

HP光纤集群系统硬件设备包括有两台HP服务器(需支持光纤卡,目前有LC2000、LH3000、LH4、 LH6000、LT6000、LXr8000、LXR8500)及光纤适配卡,可以使用RS/12FC光纤磁盘阵列柜,需另加一对或两对网卡用于心跳检测和与客户端连接。在配置过程中还需另外选配光纤卡到光纤存贮设备的光纤电缆。

硬件配置:

HPL系统的网络服务器 两台

服务器操作系统硬盘 两块

HP光纤阵列存贮柜(RS/12FC) 一台

光纤磁盘柜专用光纤电缆 两根

光纤磁盘柜数据存贮硬盘 视用户需求确定

HP光纤适配卡 两块

网络服务网卡 两块

六、集群的软件配置

基于NT平台的集群软件

Microsoft的MSCS,也有许多第三方的专业软件公司开发的集群软件,如豪威的DATAWARE,VIN CA公司的STANDBY SERVER,NSI公司的DOUBLE-TAKE.

MS WolfPack的特点

MS WolfPack是MS Cluster server的别称,是 微软针对Cluster技术研制开发的双机软件。它集成在NT SERVER上,支持由二台机器组成的双机系统,提供一种高可用且易管理的应用环境。

主要特点:

自动检测和修复服务器或应用程序的错误

可实现对服务器中应用程序的切换

可通过TCP/IP连接各种客户端,如MS-DOS、WINDOWS 3.X/9X/NT,Apple Macintosh、UNIX等

生产主机无需人工干涉即可自动恢复数据并接管任务

易管理性:

可自动审核服务器和应用程序的工作状态

可建立高可用性的应用程序、文件共享、打印请求等

可灵活设置应用程序和数据的恢复策略

简单操作即可进行应用程序的离线,重新再线,服务器间的迁移。

目前,WINDOWS 2000 Advanced Server与WINDOWS 2000 DataCenter Server都集成有更先进集群技术。

其它的网络操作系统平台上也有许多集群软件,比如:

基于novell平台的集群软件有Novell HA Server、Novell SFT III

基于sco UNIX平台的集群软件有Sentinel集群软件

基于Linux平台的集群软件有TurboCluster

七、集群技术的发展趋势

集群技术随着服务器硬件系统与网络操作系统的发展将会在可用性、高可靠性、系统冗余等方面逐步提高。未来的集群可以依靠集群文件系统实现对系统中的所有文件、设备和网络资源的全局访问,并且生成一个完整的系统映像。这样,无论应用程序在集群中的哪台服务器上,集群文件系统允许任何用户(远程或本地)都可以对这个软件进行访问。任何应用程序都可以访问这个集群任何文件。甚至在应用程序从一个节点转移到另一个节点的情况下,无需任何改动,应用程序就可以访问系统上的文件。

在今天,利用服务器的集群技术,通过周密计划和网络维护,系统破坏的机率是非常小的。所以,企业服务器的稳定必须使用集群技术。

8、自己如何搭建服务器。

1、打开控制面板,选择并进入“程序”,双击“打开或关闭Windows服务”,在弹出的窗口中选择“Internet信息服务”下面所有地选项,点击确定后,开始更新服务。

2、更新完成后,打开浏览器,输入“http://localhost/”回车,如果此时出现IIS7欢迎界面,说明Web服务器已经搭建成功。 

3、当web服务器搭建成功后,我们下一步所要做的就是把我们开发的网站安装到Web服务器的目录中。一般情况下,当Web服务器安装完成后,会创建路径“%系统根目录%inetpub/wwwroot”,将我们开发的网站COPY到该路径下。即可实现本地访问该网站。

4、设置防火墙,让局域网当其它计算机也能访问本地网站资源。具体方法:打开控制面板,选择“系统和安全”,点击“允许程序通过Windows防火墙”,在弹出的对话框中勾选“万维网服务HTTP”右侧的两个复选框,最后点击确定退出。

5、在局域网中其它计算机上,打开浏览器,输入 “http://Web服务器的IP地址/”按回车键,就可以访问服务器上的资源”。  经过以上步骤的设置,局域网中的其它用户就可以通过浏览器访问你所共享的web资源了!

(8)服务器实现扩展资料:

入门级服务器所连的终端比较有限(通常为20台左右),况且在稳定性、可扩展性以及容错冗余性能较差,仅适用于没有大型数据库数据交换、日常工作网络流量不大,无需长期不间断开机的小型企业。

不过要说明的一点就是目前有的比较大型的服务器开发、生产厂商在后面我们要讲的企业级服务器中也划分出几个档次,其中最低档的一个企业级服务器档次就是称之为"入门级企业级服务器",这里所讲的入门级并不是与我们上面所讲的"入门级"具有相同的含义,不过这种划分的还是比较少。

还有一点就是,这种服务器一般采用Intel的专用服务器CPU芯片,是基于Intel架构(俗称"IA结构")的,当然这并不是一种硬性的标准规定,而是由于服务器的应用层次需要和价位的限制。

9、服务器集群如何实现?

不难,硬件用路由器,软件嘛,操作系统用WIN2003 server enterprise 企业版,推荐一并安装R2升级包,所有机器组局域网,用一台千兆网卡做域控,架设流媒体服务器,其他机做为域成员加入进来,内网IP各用各的,外网用端口映射到一个IP,用域控做网络流量负载平衡,域控机器配置要强,如果你网络流量大,建议用专业级服务器,至强+2Gb+SCSI硬盘之类,看你环境要求了,如果必要可以上双至强,再用一台512mb内存的p4 2.0G以上机做备份域控,这样主域控上下线或重启或出故障不影响域内成员正常工作,备份域控凑合就可以了,按我上面的要求就行,当然,有钱可以用好的

如果你安全性要求高,建议路由前端用普通P4+512Mb内存机器架ISA2004 server组防火墙,配置的好效果比一般的硬件防火墙要好,完全不影响网络环境运行,域内成员可以裸奔不怕毒和黑

至于域内成员机,如果仅全力供应片源,当前主流家用机型就够用了

服务器建议用hp 360G系列,目前价位不算高,性价比还不错,售后很好,如果你对建网不怎么了解,可以让他们帮你装,买他们的服务器就是要利用他们的人力资源嘛

路由器可以选用飞鱼星4200以上机型,电信网通双WAN口,是可以提供150~250台机器的大型网吧专用的,内置参数非常丰富

另外再多罗嗦几句,板卡不要买七彩虹的,我上过当,七彩虹本身是咨讯公司,没有任何板卡生产能力,都是同德代工的,以为它的出货量大,就选了它,结果广告上的指标参数和实际产品根本不同,水份太多太多了,售后也很烂,特此建议……

楼下别再抄袭我了,每天都被抄走好几个200分最佳,实在是郁闷!

10、服务器虚拟化如何实现?

服务器虚拟化主要分为三种:“一虚多”、“多虚一”和“多虚多”。
“一虚多”是一台服务器虚拟成多台服务器,即将一台物理服务器分割成多个相互独立、互不干扰
的虚拟环境。
“多虚一”就是多个独立的物理服务器虚拟为一个逻辑服务器,使多台服务器相互协作,处理同一
个业务。
“多虚多”的概念,就是将多台物理服务器虚拟成一台逻辑服务器,然后再将其划分为多个虚拟环
境,即多个业务在多台虚拟服务器上运行。

与服务器实现相关的知识