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

c写一个服务器

发布时间:2021-03-27 16:10:19

1、求c语言程序~ 题目:写一个服务器客户端模式的程序,要求服务器发送a,客户端收到A!

/* File: server.c */

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char **argv)
{
int fd;
int address_len;
struct sockaddr_in address;

//建立套接口
fd = socket(AF_INET, SOCK_DGRAM, 0); //SOCK_DGRAM

//绑定地址和端口
bzero(&address, sizeof(address));
address.sin_family = AF_INET;
address.sin_addr.s_addr = htonl(INADDR_ANY);
address.sin_port = htons(1234);
address_len = sizeof(address);
bind(fd, (struct sockaddr *)&address, address_len);

while(1) {
struct sockaddr_in client_address;
socklen_t len = sizeof(client_address);
int n;
char line[80];

printf("waiting...");
fflush(stdout);

//接收数据
n = recvfrom(fd, line, 80, 0,
(struct sockaddr *)&client_address, &len);
printf("server received %d:%s", n, line);

//发送数据
sendto(fd, line, n, 0,
(struct sockaddr *)&client_address, len);
}
}

/* File: client.c */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char **argv)
{
int fd;
struct sockaddr_in address;
int address_len;
char line[80] = "Client to Server string!\n";
int n;

//建立套接口
fd = socket(AF_INET, SOCK_DGRAM, 0);//AF_INET和SOCK_DGRAM的组合对应UDP协议

//联接
bzero(&address, sizeof(address));
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr("193.193.196.1");
address.sin_port = htons(1234);
address_len = sizeof(address);

//发送数据
sendto(fd, line, strlen(line)+1, 0,
(struct sockaddr *)&address, sizeof(address));

//接收数据
n = recvfrom(fd, line, 80, 0, NULL, NULL);
printf("received %d:%s", n, line);
}

仔细读一下,最好下次能自己写^_^,起码要弄懂原理

2、在linux下用c语言写个socket,一个服务器,十个客户端。

多给点分,写完就给你贴上来

3、用C++写服务器怎么写

具体怎么写,没有人能告诉你,因为每个系统的需求不一样。我说一下我的程序希望对你有点帮助,分为5个部分(网络通信、协议解析、数据库操作、缓存管理、事件处理),网络通信主要有接收、发送、连接、关闭连接、数据分包这5个功能(我用得是完成端口来实现的),协议解析主要有转义/还原、校验、解析/打包这5个功能,数据库我就只封装调用存储过程,缓存管理就是存储一些经常操作的数据(避免频繁操作数据库),事件处理就是根据不同的协议对象来触发相应的处理函数。

4、如何用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文件连接 进来。

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

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

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

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

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

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

8、如何用C语言开发一个通用web服务器?

用C语言开发WEB,可以用C++BUILDER6,称ISAPI,一般人可能做不起来,有点麻烦;
唯一是速度很快,别人看不到源码,掌握了编程套路,也可以开发应用;
缺点:
1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,用C#、JAVA较多;都是解释性的语言;
2。因为是.DLL的二进制代码,一般商业网站不给予运行的环境,因为网站服务器会被你可能搞瘫,安全性得不到保障;所以,你得自备网页服务器;
3。得不到技术支持,因为没几个人会这种开发;

与c写一个服务器相关的知识