re: 心情:日夜的混乱 冷锋 2012-02-24 09:44
同时敲object-c跟C++才崩溃啊!
re: 发个招聘信息 冷锋 2012-02-07 09:26
系统架构师才20W?
re: 武侠二源码分析 冷锋 2012-01-17 14:15
求源码下载地址。
我用的epoll ET模式,我的recv跟你一样,但是Send的有点区别,我是在逻辑线程里面尝试直接发送,先判断下发送队列是否为空,如果为空的话那么直接发送,当然这里可能遇到发不完的情况,因此要记录下发送的位置,然后丢到发送队列中,IO线程里面,在可写事件到来时去检查队列并发送队列的数据。

PS:
IO线程通知逻辑线程我是通过条件变量,有点好奇你在逻辑线程是怎么通知IO线程的,IO线程应该已经在epoll_wait了,你是弄了个管道什么的吗?像memcached那样的做法。
很好奇这些商业性质的源码是怎么拿到的,是内部员工泄露的吗?那还能连上服务器?
windows是作为敲代码的平台吧,开发已经包括了编译调试了。我是在VS下配合代码助手写代码,磁盘映射linux下的目录到win下,这样就可以方便地编辑调试了,VS下要禁用掉自动把文件转成DOS的,在保存菜单的高级选项里。
文档里面是这么写的:the return value will be 0 when the peer has performed an orderly shutdown.难道还有其他情况recv会返回0的吗?除非文档有问题。如果你是用的阻塞式的socket,buffer有限,会一直被阻塞,如果是非阻塞的话,那么肯定会返回<0吧,然后检查errno==EAGAIN,说明缓冲器已经没有东西可读了@笨笨
man recv显示返回值是-1或者>=0的数,只有=-1才是错误发生,只有错误发生了errno才会被修改才是有效的吧,你在=0的时候取errno去判断是有问题的,对方发fin包过来,我方会收到可读通知,然后recv就会收到0,就说明对方关闭连接了啊@笨笨
一般是发生错误才需要检查errno的吧,发生错误了errno就被修改了,具体看man手册,为啥会要在errno没有被改也即没有发生错误的情况下检查errno呢?
如果玩家同时发两个消息给服务端,前一个是需要操作数据库的,假如应用服务器跟数据库服务器之间是用异步回调方式通信的,那么在应用服务器要怎么保证返回给客户端的是顺序的呢?@Todd
b.新的用户来了,还是用100,就会把本该发给用户A的发给用户B了,不过这个可以自己维护一个session ID搞定,c实时send的话如果发不完得有个缓冲区延迟到下次再发,由于主线程跟逻辑线程都在操作同一个fd,所以要加锁,除非你把fd分给逻辑线程单独维护,负责它的读写,我已经按照1a实现服务器的逻辑层了,你说的session是线程池还是全局的一个表?我这边事维护了一个全局的connection的表@zuhd
假如需要异步访问数据库的话怎么来保证顺序呢,由客户端来保证吗?一定要前一个请求返回了才发送下一个请求?假如是写游戏服务器的话呢?@yanxinmeng
我说的是非阻塞的多线程啊,单线程的话如果要操作数据库的话怎么办?@一念天堂
re: 我的编辑器 0.80 冷锋 2011-11-04 10:44
有点好奇,在全职工作期间(非上班时间)开发的产品到底算是公司的还是个人的,好像合同上写着是全部属于公司的额。
有没有考虑对多点触摸的支持呢?
re: mysql字符串转义函数 冷锋 2011-10-19 09:54
刚发现有这种函数,不过我是在应用层做的,主要是要转义文件名中的单引号,觉得比较简单,就自己写了个。@zuhd
re: vc定时提醒小工具 冷锋 2011-08-15 10:40
无图无真相啊

posts - 15, comments - 18, trackbacks - 0, articles - 0

Copyright © 冷锋