- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 Python 实现一个简单的http服务器
背景写一个python脚本,实现简单的http服务器功能:1.浏览器中输入网站地址:172.20.52.163:200142.server接到浏览器的请求后,读取本地的index.html文件的内容,回发给浏览器 代码实现server.py#!/usr/bin/pythonimport socketimport signalimport errnofrom time
2014-03-29 14:17:26 56867 5
原创 Python 简单数据备份脚本
手动备份 version 1#!/usr/bin/python#Filename: backup_v1.pyimport osimport timesource = ['/root/slp/NetWrokProgram/client','/root/slp/NetWrokProgram/server']dist = '/root/slp/NetWrokProgram/backu
2014-03-28 21:52:45 1679
原创 Linux 2.6 Alarm信号中断遇上函数阻塞
Unix网络编程 中提到,可以使用alarm + signal 机制产生信号,从而使程序从阻塞的函数调用中跳出,例子如下:服务进程使用阻塞的监听套接字进入监听,设置3s的alarm,确保3s内无客户端连接,看服务进程是否能在alarm触发后跳出accept阻塞;实践证明,Linux在处理完信号中断后,还会进入原有的阻塞代码中,而不是执行阻塞代码的下一条。
2014-03-25 21:27:02 3694
原创 服务器端预先创建子进程(work)同时监听服务端口和惊群现象
1.进程A在n端口上监听,即调用listen(listenfd,backlog);2.之后A调用fork产生子进程B,此时B拷贝了A的listenfd,该描述符使用的是相同的“文件表项”(具体参考 http://blog.csdn.net/ordeder/article/details/21716639)3.那么A进程和B进程将共享一个socket。多个服务进程同时阻塞在accept等待监听套接字已建立连接的信息,那么当内核在该监听套接字上建立一个连接,那么将同时唤起这些处于accept阻塞的服务进程
2014-03-21 15:45:15 4033
原创 进程调用fork与文件描述符的共享(fork,dump)
Linux的进程描述task_struct{}中有一个数组专门用于记录一打开的文件,其中文件描述符作为该数组的下标,数组元素为指向所打开的文件所创建的文件表项。如下图所示,文件表项是用于描述文件当前被某个进程打开后的状态信息,包括文件状态标志,记录当前文件读取的位移量(可以通过接口lseek设置),以及文件的i节点指针(i节点描述文件的具体信息,如:创建,修改时间,文件大小,文件存储的块信息)。进程调用fork后,打开的文件描述符进行拷贝,那么两个进程对文件描述符的操作有相关性吗?
2014-03-21 14:58:24 10282 4
原创 listen()函数中backlog参数分析
0. accept()函数不参与三次握手,而只负责从已建立连接队列中取出一个连接和服务程序的sockfd进行“映射”,并获取对端主机的ip信息(通过分片sk_buff);1. backlog参数决定了未完成队列和已完成队列中连接数目之和的最大值(从内核角度看,是否这个和就是等于sock->recv_queue ?);2. accept()函数调用,会从已连接队列中取出一个“连接”(可以是一个描述连接的数据结构,listensocket->sock->recv_queue[sk_buff] ? ),未完成
2014-03-19 19:57:50 29424 7
原创 Posex信号量 实现进程间的同步(生产者&消费者)
Posex信号量sem实现多个线程的互斥,只需在进程空间定义好sem_t变量即可,因为各个线程是共享该sem_t变量。同理,如果sem要实现进程间的互斥,这个sem_t的变量就要在共享存储中定义,因为,两个进程对sem_t的操作必须是同一个地址空间的变量,才能实现信息同步,从而达到互斥的目的。而进程间的数据共享,用共享存储即可。
2014-03-10 22:35:33 3432
原创 函数调用过程-栈帧 和 进程的关系
程序中,一个函数是一个过程,这个过程可以分为包括传入参数、过程代码、返回三部分构成。由于一个函数过程需要用到内部变量、临时变量等,所以需要在进程空间的栈空间分配一段存储片段来存储函数过程中的这些参数,该内存片段即为栈帧。
2014-03-03 22:56:42 4022
转载 c++ *.h和*.cpp在编译中的作用
http://blog.sina.com.cn/s/blog_5e8715490100tbmq.htmlhttp://blog.163.com/wslngcjsdxdr@126/blog/static/16219623020121754150101/原文:http://blog.sina.com.cn/s/blog_5e8715490100tbmq.html
2014-03-03 12:13:40 2702
树形文件系统--slp
2012-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人