偶然得了一个谷米的车载gps设备(gt02d),做为程序员的我,开始躁动了:想着做一个服务器程序,记录gps设备上传的坐标,然后再在地图上绘制每天轨迹。。。想想还是挺有意思的(其实前两年还有一个失败的经历,自己还弄了一个"TA在哪儿"的android版本的程序,就是登录后,每1分钟通过http上传坐...
分类:
其他好文 时间:
2014-08-28 12:47:11
阅读次数:
290
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.程序启动阶段创建一个线程池之后只让主线程调用 accept 并把客户连接传递给池中某个可用线程。
//用于维护关于每个线程基于信息的 Thread 结构
typedef struct {
pthread_t thread_tid; /* 线程 ID */
...
分类:
编程语言 时间:
2014-08-27 13:01:58
阅读次数:
288
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.文件上锁文件系统操作,比较耗时
2.线程上锁,不仅适用于同一进程内各线程之间的上锁,也适用于不同进程之间的上锁。
3.在不同进程之间使用线程上锁要求:
1)互斥锁变量必须存放在由所有进程共享的内存区中
2)必须告知线程函数库这是在不同进程之间共享的互斥锁
/*...
分类:
编程语言 时间:
2014-08-26 13:47:16
阅读次数:
238
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。
这样做就不用因为所有子进程都调用 accept 而需提供上锁保护
2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字
typedef struct {
pid_t ...
分类:
其他好文 时间:
2014-08-26 13:46:56
阅读次数:
154
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.为每个客户请求创建一个线程,以取代为每个客户派生一个子进程
/* include serv06 */
#include "unpthread.h"
int
main(int argc, char **argv)
{
int listenfd, conn...
分类:
编程语言 时间:
2014-08-26 13:46:46
阅读次数:
276
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.预先创建一个线程池,并让每个线程各自调用 accept
2.用互斥锁取代让每个线程都阻塞在 accept 调用之中的做法
//用于维护关于每个线程基于信息的 Thread 结构
typedef struct {
pthread_t thread_tid; ...
分类:
编程语言 时间:
2014-08-26 13:46:16
阅读次数:
321
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.允许多个进程在引用同一个监听套接字的描述符上调用 accept 这种做法并不具备兼容性。
解决的方法是让应用进程在调用 accept 前后安置某种形式的锁(lock),这样任意时刻只有一个子进程
阻塞在 accept 调用中,其他子进程则阻塞在试图获取用于保护 accept...
分类:
其他好文 时间:
2014-08-26 11:36:06
阅读次数:
231
一:mysql的介绍:mysql数据库是工作于线程模式的。是一种关系型数据库,有严格的数据模型结构,这样在并发读写量大的时候,就不得不对其进行扩展,而这种方式扩展还是非常麻烦的。由于读操作是可以缓存的,所以我们可以为mysql提供缓存服务器。程序读取数据时先查缓存服务器,..
分类:
数据库 时间:
2014-08-26 03:10:05
阅读次数:
375
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
这是一个简单的回射服务器程序。它将客户发送的数据读入缓冲区并回射其中内容
下面我会介绍同一个使用 TCP 协议的回射服务器程序的几个不同版本,分别是 fork 版本、select 版本、poll 版本、多线程版本
fork 版本:为每一个客户连接派生(for...
分类:
其他好文 时间:
2014-08-25 22:59:15
阅读次数:
447
1.迭代 TCP 服务器总是在完全处理某个客户的请求后才转向下一个客户。
2.从进程控制角度看迭代服务器是最快的,因为它不执行进程控制。
/* include serv00 */
#include "unp.h"
int
main(int argc, char **argv)
{
int listenfd, connfd;
void sig_int(int), web...
分类:
其他好文 时间:
2014-08-25 22:55:34
阅读次数:
199