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技术,进程间通信技术,多线程技术,文件操作等。
当然,以上所有技术了解最好,有些是必须熟练使用的。但是有些不用熟练使用,因为服务器,也不会让你全干,分到每个人手上的活只是一部分。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)