聊聊服务器

1.什么是服务器? 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电...
摘要由CSDN通过智能技术生成

1.什么是服务器?


   服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。
 

 简而言之服务器是增强型的计算机!

 

2.服务器种类


1.按照应用层次划分


入门级服务器
入门级服务器通常只使用一块CPU,并根据需要配置相应的内存(如256MB)和大容量IDE硬盘,必要时也会采用IDE RAID(一种磁盘阵列技术,主要目的是保证数据的可靠性和可恢复性)进行数据保护。入门级服务器主要是针对基于Windows NT,NetWare等网络操作系统的用户,可以满足办公室型的中小型网络用户的文件共享、打印服务、数据处理、Internet接入及简单数据库应用的需求,也可以在小范围内完成诸如E-mail、 Proxy 、DNS等服务。
对于一个小部门的办公需要而言,服务器的主要作用是完成文件和打印服务,文件和打印服务是服务器的最基本应用之一,对硬件的要求较低,一般采用单颗或双颗CPU的入门级服务器即可。为了给打印机提供足够的打印缓冲区需要较大的内存,为了应付频繁和大量的文件存取要求有快速的硬盘子系统,而好的管理性能则可以提高服务器的使用效率。
 

工作组级服务器
工作组级服务器一般支持1至2个PⅢ处理器或单颗P4(奔腾4)处理器,可支持大容量的ECC(一种内存技术,多用于服务器上)内存,功能全面。可管理性强、且易于维护,具备了小型服务器所必备的各种特性,如采用SCSI(一种总线接口技术)总线的I/O(输入/输出)系统,SMP对称多处理器结构、可选装RAID、热插拔硬盘、热插拔电源等,具有高可用性特性。适用于为中小企业提供Web、Mail等服务,也能够用于学校等教育部门的数字校园网、多媒体教室的建设等。
通常情况下,如果应用不复杂,例如没有大型的数据库需要管理,那么采用工作组级服务器就可以满足要求。国产服务器的质量已与国外著名品牌相差无几,特别是在中低端产品上,国产品牌的性价比具有更大的优势,中小企业可以考虑选择一些国内品牌的产品。此外,HP等大厂商甚至推出了专门为中小企业定制的服务器。但个别企业如果业务比较复杂,数据流量比较多,而且资金允许的情况下,也可以考虑选择部门级和企业级的服务器来作为其关键任务服务器。HP、DELL、IBM、浪潮都是较不错的品牌。
 

部门级服务器
部门级服务器通常可以支持2至4个PⅢ Xeon(至强)处理器,具有较高的可靠性、可用性、可扩展性和可管理性。首先,集成了大量的监测及管理电路,具有全面的服务器管理能力,可监测如温度、电压、风扇、机箱等状态参数。此外,结合服务器管理软件,可以使管理人员及时了解服务器的工作状况。同时,大多数部门级服务器具有优良的系统扩展性,当用户在业务量迅速增大时能够及时在线升级系统,可保护用户的投资。部门级服务器是企业网络中分散的各基层数据采集单位与最高层数据中心保持顺利连通的必要环节。适合中型企业(如金融、邮电等行业)作为数据中心、Web站点等应用。
企业级服务器
企业级服务器属于高档服务器,普遍可支持4至8个PIII Xeon(至强)或P4 Xeon(至强)处理器,拥有独立的双PCI通道和内存扩展板设计,具有高内存带宽,大容量热插拔硬盘和热插拔电源,具有超强的数据处理能力。这类产品具有高度的容错

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的客户端和服务器端的C语言代码示例,可以实现客户端与服务器之间的畅聊: 服务器端代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #define PORT 8888 #define MAX_MSG_LEN 1024 int main(int argc, char *argv[]) { // 创建socket int server_fd = socket(AF_INET, SOCK_STREAM, 0); if (server_fd < 0) { perror("socket creation failed"); exit(EXIT_FAILURE); } // 绑定socket和端口 struct sockaddr_in address; address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(PORT); if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) { perror("bind failed"); exit(EXIT_FAILURE); } // 监听端口 if (listen(server_fd, 3) < 0) { perror("listen failed"); exit(EXIT_FAILURE); } printf("Server started listening on port %d...\n", PORT); // 等待客户端连接 int client_fd = accept(server_fd, (struct sockaddr *)&address, (socklen_t *)&address); if (client_fd < 0) { perror("accept failed"); exit(EXIT_FAILURE); } printf("Client connected.\n"); // 等待消息 char message[MAX_MSG_LEN]; while (1) { memset(message, 0, MAX_MSG_LEN); int bytes_received = recv(client_fd, message, MAX_MSG_LEN, 0); if (bytes_received < 0) { perror("recv failed"); exit(EXIT_FAILURE); } if (bytes_received == 0) { printf("Client disconnected.\n"); break; } printf("Received message from client: %s\n", message); // 发送消息给客户端 char response[MAX_MSG_LEN]; sprintf(response, "Server received message: %s", message); send(client_fd, response, strlen(response), 0); } // 关闭socket close(server_fd); return 0; } ``` 客户端代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #define SERVER_IP "127.0.0.1" #define PORT 8888 #define MAX_MSG_LEN 1024 int main(int argc, char *argv[]) { // 创建socket int client_fd = socket(AF_INET, SOCK_STREAM, 0); if (client_fd < 0) { perror("socket creation failed"); exit(EXIT_FAILURE); } // 连接服务器 struct sockaddr_in server_address; server_address.sin_family = AF_INET; server_address.sin_addr.s_addr = inet_addr(SERVER_IP); server_address.sin_port = htons(PORT); if (connect(client_fd, (struct sockaddr *)&server_address, sizeof(server_address)) < 0) { perror("connection failed"); exit(EXIT_FAILURE); } printf("Connected to server.\n"); // 发送消息给服务器 char message[MAX_MSG_LEN]; while (1) { printf("Enter message to send to server: "); fgets(message, MAX_MSG_LEN, stdin); message[strcspn(message, "\n")] = 0; int bytes_sent = send(client_fd, message, strlen(message), 0); if (bytes_sent < 0) { perror("send failed"); exit(EXIT_FAILURE); } if (strcmp(message, "exit") == 0) { printf("Disconnected from server.\n"); break; } // 接收服务器的响应消息 char response[MAX_MSG_LEN]; int bytes_received = recv(client_fd, response, MAX_MSG_LEN, 0); if (bytes_received < 0) { perror("recv failed"); exit(EXIT_FAILURE); } printf("Received message from server: %s\n", response); } // 关闭socket close(client_fd); return 0; } ``` 运行以上代码后,可以在客户端输入消息并发送给服务器服务器会将接收到的消息回复给客户端。当客户端输入“exit”时,程序结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值