Linux TCP UDP 混合

基本的思路是这样的:在服务器端,有两个机器,一个对外开启 TCP 监听,然后把监听到的请求内容送到后面的另外一台,或者多台轮询机器上,内网之间使用 UDP,然后等待业务逻辑机器处理完成,这个地方可以做成异步的,然后再返回到用户。 即是这样: client server_front server_back 下面来看代码,首先是 server_fro……

阅读全文

不同服务器端模型在并发请求下的表现差异

一般来说,服务器的模型有下面几种: 单进程单线程 多进程(一个请求对应一个进程,Apache 之类貌似就是这个) 多线程(一个请求对应一个线程,这个挺少见到的) select / poll epoll 它们的差别可以看这个,http://www.cnblogs.com/sharra/… 因为需要了解底层设备访问的原理,所以惯用高层应用语言的我,需要了……

阅读全文

pipe 函数产生的文件描述符

我们知道 pipe 可以产生一对管道,用于两个进程之间的单工通信,今天在接触一个代码的时候,发现他有一个做法:为每个进程都准备读写管道的文件描述符,同时,赋初始值为 0 和 1,然后根据需要,再进行或者不进行 pipe 管道的创建,之后进行一些业务逻辑,在后面,进行一个硬编码的比较:如果该进程的管道文件描述符为 0……

阅读全文

使用 C 操作 MySQL 时的转义

翻阅了一下文档,C 的 API 操作 MySQL 的时候没有参数化查询的接口,于是就简单的做一个转义,其实照着官方文档,很简单,直接附上代码 #include <stdio.h> #include <Windows.h> #include "mysql.h" #define TMP_SIZE 256 #define T_SIZE 1024 #define QUERY_SIZE 4096 int insert_r……

阅读全文

使用 C 操作 MySQL

最近在做一个 twitter 的数据分析,要导一些个数据到数据库中,数据量在亿行这个数量级,由于没什么经验,打算先搞个几百万或者千万行试试,在写导入的时候,由于贪图 PHP 和 MySQL 的无缝配合,所以拿着 PHP 就上了,结果发现效果惨不忍睹,效率完全没法满足需求,于是开始考虑转向 C,在网上搜罗了好一会,C 连接 MySQ……

阅读全文

字符串转浮点数

今天看到一个题,让把字符串转成浮点数,列了一下,需要注意的应该就是这几点 前导空白字符 符号位 前导零 #include <stdio.h> #include <string.h> #include <math.h> double a2f(char *str) { // leading space while (*str==' ' || *str=='t') { str++; } // judge sign int sign = 1;……

阅读全文