中国开发网: 论坛: 程序员情感CBD: 贴子 825777
Apache
试了一下,用C 写的UDP Server 也只能响应 1W requests per second
是不是我写的不对


是不是应该多个线程Accept 请求

但绑定到同一个端口的冲突怎么解决呢


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

#include <stdbool.h>

char *copyright = "Nothing
=========================================================";

short int srv_port = 1520;
/********************************/
int main(int argc, char * argv[])
{
printf("%s\n", copyright);

int sockfd;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1) {
printf("Error 01: sockfd ");
exit(-1);
}

struct sockaddr_in server,their;
server.sin_family = AF_INET;
server.sin_port = htons(srv_port);
server.sin_addr.s_addr = INADDR_ANY;
memset(server.sin_zero, '\0', 8);

bind(sockfd, (struct sockaddr *)&server, sizeof(struct sockaddr));

printf("bind ip:%s\tport:%i\n",inet_ntoa(server.sin_addr.s_addr), srv_port);

char buf[4096];
int resize, the_len;
the_len = sizeof(struct sockaddr);
int i=0;
while(true){
resize = recvfrom(sockfd, buf, sizeof(buf)-1, 0,
(struct sockaddr *)&their, &the_len);

printf("%u\n",i);
i++;
//printf("%s\n", buf);
//printf("\t\t%s\n", inet_ntoa(their.sin_addr));
}

close(sockfd);
return 0;
}











相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录