首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于linux上即时聊天室的有关问题

2012-08-29 
关于linux下即时聊天室的问题问题描述:服务器来了一个connect,就开一个进程,父进程继续accept,如果第一个

关于linux下即时聊天室的问题
问题描述:
服务器来了一个connect,就开一个进程,父进程继续accept,如果第一个客户端链接成功的FD为5,第二个连接的客户端为6,现在的问题是:FD为6的可以给FD5的发消息,单FD为5的不能给FD为6的发,也就是说进程的状态是不同步的,这问题怎么解决。。。。。。。信号?

[解决办法]
如果是Linux下的fork, 则:
原因: FD=5 时fork出的进程(名字暂定为P5)能共享到主进程的描述符为3~5.(?)
FD=6 时fork出的进程(名字暂定为P6)能共享到主进程的描述符为3~6.(?)
所以P6可以使用描述符5.
而P5自描述符5之后的描述符都是属于P5自己的. 不是共享主进程的描述符6.

解决方式 :
异步方式修改为进程.
服务器来了一个connect,就开一个进程分配一条线程处置,父进程主线程继续accept,
各任务线程通过全局变量或者创建线程时的传参的方式共享所有的连接设备描述符.

热点排行