由于python本身的线程基本上比较残废,所以为了利用机器的cpu,就不得不用上多进程。。。
在游戏服务器的设计中,最为常见的方式是:
挂一个前端服务器,专门来维护与客户端的连接,然后将客户端的请求数据转发给后端服务器。。。
上面的方式是现在最为正统的。。。
但是自己因为环境的限制,需要做到对客户端透明,然后将后端的服务器转换成为多进程的。。。所以这里就只有用一点比较别扭的方法了,首先处理登录等一些常规的逻辑放在前端服务器,当进入放进进行匹配战斗之后,将客户端的socket连接直接交给后端服务器,然后进行...
分类:
编程语言 时间:
2015-05-18 10:59:25
阅读次数:
172
套接字是通信端点的抽象。正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。套接字描述符在UNIX系统中被当作是一种文件描述符。事实上,许多处理文件描述符的函数(read和write)可以用于处理套接字描述符。 ——《unix环境高级编程》 WEB应用客户端(浏览器或APP等)与...
分类:
其他好文 时间:
2015-05-18 10:38:07
阅读次数:
178
问题现象:日志出现大量“打开文件过多”异常信息问题分析:通过网上查询,发现是由于系统参数设置问题造成,因为应用并发量大,http连接多了,随之socket的消耗也多了,socket文件描述符也是Linux系统文件描述符的一种,Linux操作系统对此也有限制,所以需要调大参数fs.max-file和/...
分类:
其他好文 时间:
2015-05-17 16:33:56
阅读次数:
225
一.基本概念:
1.epoll是什么:
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入就绪队列(Ready)的描述符集合就行了。epo...
分类:
其他好文 时间:
2015-05-17 00:53:13
阅读次数:
194
Linux文件类型 对于内核而言,所有打开的文件都是通过文件描述符引用(FD),文件描述符是一个非负整数,当打开现有问价或创建一个新文件时,内核向进程返回一个文件描述符。 按照惯例,shell把文件描述符0与进程的标准输入关联,文件描述符1与标准输出关联,文件描述符2与标准错误关联。 对于系...
分类:
系统相关 时间:
2015-05-16 10:19:47
阅读次数:
147
listen()函数功能
用于面向连接服务器,表明愿意接收连接
#include
函数原型
int listen(int s, int backlog);
参数说明
sockfd:调用socket返回的文件描述符
backlog:accept()应答之前,允许在进入队列中等待的连接数目,出错时返回-1
返回值
成功时,返回0
失败时,返回-1
说明
在使用listen(...
分类:
系统相关 时间:
2015-05-15 12:12:51
阅读次数:
138
1、安装系统时+选包(最小化安装+ssh-server)
2、配置国内源或公司内部源
3、禁用开机不需要启动的服务(chkconfig或sysv-rc-conf)
4、根据项目情况修改系统内核参数/etc/sysctl.conf
5、根据项目情况修改系统文件描述符、堆栈等配置
6、禁止root远程登录、修改ssh端口为特殊端口..
分类:
其他好文 时间:
2015-05-14 20:40:33
阅读次数:
168
linux应用开发-守护进程
linux应用开发-守护进程
一 守护进程
默认的后台运行的进程
二 与安卓的服务相关联
三 守护进程编写
1 脱离控制终端tty,让父进程为init
2 禁止进程重新打开控制终端
3 重新开启会话setsid();
4 关闭打开的文件描述符,进程从创建它的父进程哪里继承了打开的文件描述符
,若不关闭,将会造成资...
分类:
系统相关 时间:
2015-05-14 14:19:39
阅读次数:
159
1 常用函数1.1 socket()int socket(int family, int type, int protocol); socket()打开一个网络通讯端口,如果成功的话,返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上收发数据,如果socket()调用出.....
分类:
其他好文 时间:
2015-05-14 14:05:11
阅读次数:
102
lsof工具文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。Linux操作系统通常给每个进程能打开的文件数量强加一个限制,Linux通常有一个系统级1024的限制。
随着并发的增大,原有系统默认的1024个文件描述符肯定会不够用,时间越长,系统可能会报如下错误:open files limits…..查看nginx进程所占用的...
分类:
其他好文 时间:
2015-05-13 10:33:41
阅读次数:
148