【C C++服务器开发】具备丰富功能和可以同时响应多个客服端的服务器_c+(1)
创始人
2024-11-05 19:39:50
0

一、前言

往期博客回顾:

C/C++ 服务器/后台开发学习路线总结及准备

【C/C++服务器开发】什么是服务器?服务器分类及构建一个简单的服务器系统

【C/C++服务器开发】socket网络编程函数接口详解

【C/C++服务器开发】socket网络编程函数接口的灵活运用

之前的服务器只能提供简单的功能,我们可以不断丰富其功能,使其可以提供更加丰富的功能。比如web服务器可以提供网页数据,文件服务器可以提供文件下载等。

此外之前的服务器只能同时响应一个客户端的请求,因此我们需要考虑使用多进程或多线程来改进服务器模型,使其可以同时接收多个客户端的请求。

二、功能更加丰富的服务器

服务器的功能需要根据我们的需求来确定,这边我们只是提供一种思路,一个方向。

比如我们在数据库端保存一份数据,然后客户端可以通过连接服务器端来查询这个数据。

server.cpp

#include
#include
#include
#include
#include
#include
#include
int main(){

//创建套接字
int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

//将套接字和IP、端口绑定
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr)); //每个字节都用0填充
serv_addr.sin_family = AF_INET; //使用IPv4地址
serv_addr.sin_addr.s_addr = inet_addr(“127.0.0.1”); //具体的IP地址
serv_addr.sin_port = htons(1234); //端口
bind(serv_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));

//进入监听状态,等待用户发起请求
listen(serv_sock, 20);

char bufferrev[100];
memset(bufferrev, 0x00, sizeof(bufferrev));
char* buffersnd;

while(1) {

//接收客户端请求
struct sockaddr_in clnt_addr;
socklen_t clnt_addr_size = sizeof(clnt_addr);
int clnt_sock = accept(serv_sock, (struct sockaddr*)&clnt_addr, &clnt_addr_size);

int len = read(clnt_sock, bufferrev, 100-1);
printf(“receive data: %s\n”, bufferrev);

if (strcmp(bufferrev, “wuhan”) == 0) {
strcpy(buffersnd, “you want know wuhan!”);
} else if (strcmp(bufferrev, “guangzhou”) == 0) {
strcpy(buffersnd, “you want know guangzhou!”);
} else if (strcmp(bufferrev, “shenzhen”) == 0) {
strcpy(buffersnd, “you want know shenzhen!”);
} else if (strcmp(bufferrev, “shagnhai”) == 0) {
strcpy(buffersnd, “you want know shanghai!”);
} else {strcpy(buffersnd, “no data about that!”);}

//向客户端发送数据,将从客户端接收的数据反送回去
printf(“server send data to client!\n”);
write(clnt_sock, buffersnd, sizeof(buf

相关内容

热门资讯

黑科技辅助!wepoke透明挂... 黑科技辅助!wepoke透明挂在哪买(透视)软件透明挂ai辅助器(一直真的是有挂)-哔哩哔哩,wep...
黑科技辅助!红龙扑克会作假(透... 黑科技辅助!红龙扑克会作假(透视)软件透明挂ai辅助工具(本来是真的有挂)-哔哩哔哩;最新版2026...
黑科技辅助!wepoke是有挂... 黑科技辅助!wepoke是有挂软件(透视)先前真的是有挂(有挂方式)-哔哩哔哩;1、完成wepoke...
黑科技辅助!红龙扑克辅助器第一... 黑科技辅助!红龙扑克辅助器第一视角(透视)软件透明挂ai辅助器(竟然存在有挂)-哔哩哔哩;黑科技辅助...
黑科技辅助!wepoke真的有... 黑科技辅助!wepoke真的有挂嘛(透视)都是存在有挂(有挂工具)-哔哩哔哩;是一款可以让一直输的玩...
黑科技辅助!德州ai辅助可以打... 黑科技辅助!德州ai辅助可以打(透视)软件透明挂ai辅助软件(素来有挂)-哔哩哔哩;1、让任何用户在...
黑科技辅助!智星菠萝德州辅助器... 黑科技辅助!智星菠萝德州辅助器(透视)原生真的有挂(详细教程)-哔哩哔哩是一款可以让一直输的玩家,快...
黑科技辅助!wpk透视辅助(透... 黑科技辅助!wpk透视辅助(透视)软件透明挂ai辅助安装(原来有挂)-哔哩哔哩;wpk透视辅助是一种...
黑科技辅助!poker外挂(透... 黑科技辅助!poker外挂(透视)素来真的是有挂(有挂详情)-哔哩哔哩;AI辅助机器人普及解说快速成...
黑科技辅助!pokerworl... 黑科技辅助!pokerworld软件(透视)软件透明挂ai辅助安装(竟然真的是有挂)-哔哩哔哩;1、...