【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

相关内容

热门资讯

6分钟实锤!德扑之星真的有辅吗... 6分钟实锤!德扑之星真的有辅吗"wepokeai机器人(其实真的有挂)-哔哩哔哩是一款可以让一直输的...
四分钟透明挂!wepoke软件... 四分钟透明挂!wepoke软件收费是真的吗"德扑起手牌胜率图(原来真的有挂)-哔哩哔哩;科技安装教程...
细节方法!德州aiapp(wp... 细节方法!德州aiapp(wpk提高胜率)其实真的是有挂(有挂秘籍)是一款可以让一直输的玩家,快速成...
十分钟总结!wpk辅助器是真的... 十分钟总结!wpk辅助器是真的假的"德扑之星猫腻(原来真的有挂)-哔哩哔哩;科技详细教程小薇《136...
玩家教你!微扑克wpk真的有辅... 玩家教你!微扑克wpk真的有辅助吗(aapoker猫腻)原来真的有挂(有挂安装)1、微扑克wpk真的...
2分钟总结!wpk机器人软件&... 2分钟总结!wpk机器人软件"德州免费辅助神器app(其实真的有挂)-哔哩哔哩1、全新机制【德州免费...
2024新版!wpk后台管理系... 2024新版!wpk后台管理系统(wepoke计算辅助)其实真的是有挂(有挂技巧)该软件可以轻松地帮...
6分钟揭秘!德扑之星软件介绍&... 6分钟揭秘!德扑之星软件介绍"德扑起手牌胜率图(其实真的有挂)-哔哩哔哩1、德扑之星软件介绍系统规律...
扑克教程!wepoke调控参数... 1、扑克教程!wepoke调控参数(wpk发牌逻辑)原来确实真的有挂(有挂科技)(UU poker、...
实用技巧!德州之星app有吗(... 实用技巧!德州之星app有吗(wepoke辅助德之星)其实真的是有挂(有挂规律)1、游戏颠覆性的策略...