cs模式服务器的架构

cs模式服务器的架构,第1张

1、c/s、b/s是当下两种服务器架构模型。

2、c/s架构是指客户端/服务器的架构,需要同时编写两套代码,即客户端一套,服务端一套,所以开发起来速度较慢,日后的维护工作量也较大。

3、b/s架构是指浏览器/服务器构架,只需要编写服务器端的代码即可,开发完成了,就可以将应用部署到一些中间服务器上来发布自己的运用,拿web应该用来说,这些服务器有IIS、jboss、weblogic、websphere、tomcat等等。

4、客户端与服务器交互时,服务器会根据客户端的不同请求进行相应的业务处理,之后将结果返回对客户端。

以上只是简单的描述了下c/s、b/s架构,更详细说明楼主可以网上找些相关资料了解。

有问题欢迎提问,满意请采纳!

OK

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/ip.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <stdio.h>

#include <stdlib.h>

#include <strings.h>

#include <unistd.h>

#include <string.h>

int main(int argc,char *argv[])

{

int sockfd,new_socket

int sock_value

char buf[] = "hello! China!I Love You\n"

struct sockaddr_in client_

struct sockaddr_in server_

int SIZE = sizeof(struct sockaddr_in)

if(argc != 2){

fprintf(stderr,"The two number!\n")

exit(1)

}

if((sock_value = atoi(argv[1])) <0){

fprintf(stderr,"socket error!\n")

exit(1)

}

if((sockfd = socket(PF_INET,SOCK_STREAM, 0)) == -1){

perror("socket")

exit(1)

}

bzero(&server_,SIZE)

server_.sin_family = PF_INET

server_.sin_port = htons(sock_value)

server_.sin_addr.s_addr = INADDR_ANY

if(bind(sockfd,(struct sockaddr *)(&server_),SIZE) == -1){

perror("bind")

exit(1)

}

if(listen(sockfd, 12) == -1){

perror("listen")

exit(1)

}

printf("Waiting ... ...\n")

while(1){

if((new_socket = accept(sockfd,(struct sockaddr *)(&client_),&SIZE)) == -1){

perror("accept")

exit(1)

}

printf("The client IP is %s\n",inet_ntoa(client_.sin_addr))

printf("The socket is %d\n",ntohs(client_.sin_port))

if(write(new_socket,buf,strlen(buf)) == -1){

perror("write")

exit(1)

}

int my

char mybuf[1024]

if((my = read(new_socket, mybuf,1024)) == -1){

perror("read")

exit(1)

}

mybuf[my] = '\0'

printf("#++++#++++#:%s\n",mybuf)

close(new_socket)

}

close(sockfd)

return 0

}

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/ip.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <stdio.h>

#include <stdlib.h>

#include <strings.h>

#include <unistd.h>

int main(int argc,char *argv[])

{

int sockfd

int sock_value

char buf[1024]

char mybuf[] = "Linux\n"

int read_count

struct sockaddr_in client_

struct sockaddr_in server_

int SIZE = sizeof(struct sockaddr_in)

if(argc != 3){

fprintf(stderr,"The two number!\n")

exit(1)

}

if((sock_value = atoi(argv[2])) <0){

fprintf(stderr,"socket error!\n")

exit(1)

}

if((sockfd = socket(PF_INET,SOCK_STREAM, 0)) == -1){

perror("socket")

exit(1)

}

bzero(&client_,SIZE)

bzero(&server_,SIZE)

client_.sin_family = PF_INET

client_.sin_port = htons(52252)

client_.sin_addr.s_addr = INADDR_ANY

server_.sin_family = PF_INET

server_.sin_port = htons(sock_value)

server_.sin_addr.s_addr = inet_addr(argv[1])

if(connect(sockfd,(struct sockaddr *)(&server_),SIZE) == -1){

perror("connect")

exit(1)

}

if((read_count = read(sockfd,buf,1024)) == -1){

perror("read")

exit(1)

}

buf[read_count] = '\0'

printf("#----#----#:%s\n",buf)

if(write(sockfd, mybuf,6) == -1){

perror("write")

exit(1)

}

close(sockfd)

exit(0)

return 0

}

做服务器,你需要知道服务器都需要什么技术。首先,搭建服务器一般都是在Linux平台,所以你需要了解Linux知识,包括Linux操作命令。

另外,服务器经常需要脚本,你需要知道shell脚本的知识。

然后,就是网络通信,服务器和客户端需要进行通信,你需要知道tcp/ip协议,网络编程,http和https协议,还有单播,组播,广播。

还有,服务器一般还需要数据库做支撑,所以数据库还需要了解。

当然,最基础的编程语言肯定是需要熟练掌握的,最好能懂算法,这样搭建服务器才高效。

最后,还有一些特殊的技术,比如多客户端同时连接服务器问题,epoll,select技术,进程间通信技术,多线程技术,文件操作等。

当然,以上所有技术了解最好,有些是必须熟练使用的。但是有些不用熟练使用,因为服务器,也不会让你全干,分到每个人手上的活只是一部分。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/200131.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存