① 自己最近在用C++写一个C/S的应用,想请教一下关于服务器的问题
自己最近在用c加加写一个应用,这个服务器还是可以,没有什么多大的问题。
② c程序如何接受服务器传来的参数
你好。
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
就是这两句话,你可以写自己的参数分析类。
分析运行参数是在app的initinstance函数里面的。
如果内我的回答没能帮助您,请容继续追问。
您也可以向我们团队发出请求,会有更专业的人来为您解答。
③ 如何提高C/S模式服务器网络处理性能
1 线程阻塞模式 程序逻辑直观 为每一个连接开一个线程
2 普通选择
3 异步选择 需要依靠Windows窗口版
4 事件通知权 与系统操作一致
5 重叠 高效 依靠文件系统
6 完成端口 高效 程序逻辑复杂
现在网络游戏服务器,高效实用服务器端多是用完成端口技术,完成端口也是公认最高效的I/O模式 楼主有时间可以深入研究下
④ C语言中,客户端如何对多个服务器操作的,详解~!!
connect有个参数是struct sockaddr 所以可以用多个socket连接多个服务端。然后通过不同的版socket给不同的服务器发送数据。还有你是不能直接权操作服务器的。服务器只是根据你发送过去的特定数据进行响应。
一样的,弄个线程然后循环一直accept,判断:当有客户端链接的时候,就保存下来链接的这个客户端的socket,然后开个线程对这个socket发送数据就可以了。因为是循环accept就会有很多客户端链接过来。
⑤ 如何用c语言实现http服务器
//服务端简易代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<err.h>
#include<event.h>
#include<evhttp.h>
voidhttp_handle(structevhttp_request*req,void*arg);/*HTTPRequestHandle*/
intmain(){
structevhttp*httpd;
event_init();
httpd=evhttp_start("0.0.0.0",2345);
if(httpd==NULL){
fprintf(stderr,"Error:Unabletolistenon%s:%d ");
exit(1);
}
evhttp_set_timeout(httpd,2000);
evhttp_set_gencb(httpd,http_handle,NULL);
event_dispatch();
evhttp_free(httpd);
return0;
}
voidhttp_handle(structevhttp_request*req,void*arg){
structevbuffer*buf;
buf=evbuffer_new();
/*Responsetheclient*/
evhttp_send_reply(req,HTTP_OK,"OK",buf);
//evbuffer_add_printf(buf,"%s","HTTPSQS_AUTH_FAILED");
/*Releasethememory*/
evbuffer_free(buf);
fprintf(stderr,"Send ");
}
编译:编译时把libevent的类库中的.so文件和.h文件连接进来。
⑥ C/S 系统的服务器的功能是实现 ( ) 。
c/s在服务器端抄可能只有袭数据库,b/s在服务器端除了数据库还有一个网页发布服务,比如iis、pache+iasp
、netbox等很多。现在服务器这么发达,基本都可以通用了。没什么太大区别,性能要求高点而已!
⑦ C/S多个客户端直接连接服务器的数据库如何进行并发操作呢
数据库作为服务器软件,支持客户端的并发操作是必须的功能啊,客户端不用考虑哦。
数据库引擎有一系列的办法来支持多用户的并发的,包括锁、序列化、缓冲区等等。
⑧ 如何搭建C/S中的服务器端
1、确定客户端和服抄务袭端之间采用的序列化和反序列化的交换格式,可以采用的有XML JSON PROTOBUF等等
2、确定了交换格式以后开始编写程序
3、服务端编程大部分都是处理RPC,难点就是在与客户端连接和接收数据这一块
http is base on ftp:
http app layer
--------
ftp translation layer.
如果我的回答没帮助到您,请继续追问。
⑨ C/C++做服务器需要学习什么样的技术
服务器所用到抄的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。