导航:首页 > IDC知识 > c写服务器

c写服务器

发布时间:2020-10-16 01:29:51

1、问一下 用C/C++写的服务器 开源的有哪些?

经典的ACE框架,不过里面的Bug也有很多,用的时候小心。

2、求助,纯C写服务器还是C++写服务器的迷茫

不大的话用C写,很大的话用C++。即使用C也可以模拟出C++的class,叫abstract data type

3、如何用c语言实现http服务器

//服务端简易代码如下:
#include <stdio.h>  
#include <stdlib.h>  
  
#include <err.h>  
#include <event.h>  
#include <evhttp.h>  
  
void http_handle(struct evhttp_request *req, void *arg); /*  HTTP Request Handle  */  
  
int main(){  
    struct evhttp *httpd;  
    event_init();  
    httpd = evhttp_start("0.0.0.0", 2345);  
    if (httpd == NULL) {  
        fprintf(stderr, "Error: Unable to listen on %s:%d ");  
        exit(1);      
    }     
    evhttp_set_timeout(httpd, 2000);  
    evhttp_set_gencb(httpd, http_handle, NULL);  
    event_dispatch();  
    evhttp_free(httpd);  
  
    return 0;  
}  
  
void http_handle(struct evhttp_request *req, void *arg){  
    struct evbuffer *buf;  
    buf = evbuffer_new();  
  
    /*  Response the client  */  
    evhttp_send_reply(req, HTTP_OK, "OK", buf);  
  
    //evbuffer_add_printf(buf, "%s", "HTTPSQS_AUTH_FAILED");  
  
    /*  Release the memory  */  
    evbuffer_free(buf);  
    fprintf(stderr,"Send  ");  
}

编译:编译时把libevent的类库中的.so文件和.h文件连接 进来。

4、c/c++写服务器一般用什么方式访问数据库的?

要做服务器端的话数据库就是放在你的服务器上的, 数据库会提供相应的访问接口, 具体使用方式可以搜一下"C++连接数据库"之类的
http是客户端访问服务器才用得到, 直接操作数据库的总是服务器端而不是客户端

5、c语言有网络编程有没有人使用c做游戏服务器

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

6、在什么情况下是用C语言写linux服务器

GUI 可以用 GTK 写 , 是 C 的 , 用不着 C++,服务端 不会让你写 GUI, C++ 你可以 看看, 主要理解一下 OOP, C 也可以 实现OO, 多看看没坏处, 有些技术不到家的公司会要你用C++, 看看就行了, 基本用不到c++高级特性, 底层还是靠C的功底...

7、linux系统用C语言写个视频服务器,求老前辈们指导

我的c语言只有二级水平,班门弄斧了。
似乎,linux本身就有几个不错的开源视频服务器,
如果要求不高的话可以直接使用他们的;
如果他们的不能达到要求,可以使用c些一些代码做转换,然后使用popen,system之类的调用;
或者,借鉴开源的视频服务器代码自己深度加工;
gstreamer本身就是专门处理视频流的,可以看看能不能用上。

8、自己最近在用C++写一个C/S的应用,想请教一下关于服务器的问题?

自己最近在用c加加写一个应用,这个服务器还是可以,没有什么多大的问题。

9、C/C++做服务器需要学习什么样的技术

服务器所用到的知识:

TCP/UDP,最基本的

并发——你可以选择使用select、poll,或者是多线程、多进程

如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,

如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题

你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题

你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性

还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解

推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。

10、有没有用C或c++写的web服务器

cpp-net lib cpp-netlib: The C++ Network Library,号称是要进入标准的,但是感觉还不stable;
facebook做了一个HTTP库 facebook/proxygen · GitHub,只对Linux系统比较友好;
另外还有一个叫pion的HTTP库 splunk/pion · GitHub

C/C++好的网络库有很多,像asio, libevent, libuv等的性能都是极好的,可以在这个基础上加上HTTP协议解析,比如用joyent的http_parser,然后就是处理HTTP协议本身了,但这个时候问题就来了,是支持到1.1还是2.0?要不要支持SPDY、WebSocket?

没有GC的语言处理字符串是很虐心的,如果一定要强求用C++,那我只能安慰题主:node也是C++写的,你就当node的框架是C++ Web服务器咯~

更好的选择是用nginx,靠谱,实用。

与c写服务器相关的知识