免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3764 | 回复: 8

設計一個雙向溝通即時知道對方狀態的伺服器 [复制链接]

论坛徽章:
0
发表于 2012-08-28 19:09 |显示全部楼层
下午想了又想....想了又想....

先畫了這張圖...

我的需求是建立一個 雙向溝通的 即時知道對方狀態的伺服器

我先把想法畫成一張圖.....





1 會走向 2 也會走向 3 如果往 3 走上去 會走向 4 跟 5 .

如果停在 5 上面 則 5 跟 6 會不停的去讀取 Vector OR MAP 的內容 , 判斷要發送 TCP 給那些人.

如果都處理完了 6 就會走回 4 再走回 1,2,3,4 那二圈.

讓 5,6 會因為 使用者共同組織了一個組織 在裡頭時才會不停的把 TCP 送給 5,6 迴路的人.

讓 5,6 迴路的人可以互相即時知道對方的動態........

提供參考....


有什麼好的建議~~請多多建議~~謝謝~~

PS : 就是不想用 UDP 封包 做才想破頭... >_<" 別建議我用 UDP 做...

论坛徽章:
0
发表于 2012-08-29 06:51 |显示全部楼层
本帖最后由 fiendcly 于 2012-08-29 06:54 编辑

這個板沒有 TCP 的專業人士嗎.......


畫圈圈中~~~


论坛徽章:
0
发表于 2012-08-31 07:29 |显示全部楼层
没看到图

论坛徽章:
0
发表于 2012-08-31 13:39 |显示全部楼层
duanjigang 发表于 2012-08-31 07:29
没看到图


可能是你們繞不到台灣的機房.

arc5.jpg

论坛徽章:
0
发表于 2012-08-31 13:39 |显示全部楼层
昨天實驗了一下

5,6 群組的楖念~會造成~3 , 4  被影響 .

如果想要 5,6 / 3,4 都有在做

而且 3,4 是一個由 CLIENT 個人發動個人讀取的 開關.

5,6 則是共享在一個 群組 讀取 3,4 的行為來決定要發動給這群組相關的人.

解法我能想到的只有二種~~

FORK 取用 共用 記憶體. SHM ( LINUX KERNEL 層的一個技巧 )

THREAD 共用資源 開 THREAD 出來跑~~

後來我選用 THREAD , 這樣可移值性會高一點~

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
发表于 2012-09-19 09:57 |显示全部楼层
1、2、3为读事件,放一起维护。
读完一次完整数据,当一个job,扔给线程池。
线程池里边是job的逻辑。

5、6、4为一起维护,为写事件。
逻辑作完,就触发一个写事件。



如果你的业务简单,并发量低,单线程都可以搞定。
epoll,select,IOCP这些了解吗?
C++:libevent等
Java:netty,NIO

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2012-09-20 13:50 |显示全部楼层
自己读lighttpd/nginx/memcached源码, 网络开发能力基本就到头了.

问了白问.

不想写就考虑XMPP(JABBERD2)

论坛徽章:
0
发表于 2012-09-21 08:35 |显示全部楼层
本帖最后由 fiendcly 于 2012-09-21 08:39 编辑

@@" 這專案我己經全部寫完了.

架構圖也改了很多...

後來又做了 群組TCP廣撥和同房間資訊互通 還有 二個 TCP SERVER 互相溝通並且廣撥到另一個TCP SERVER 的功能.

謝謝大家熱情回答..

论坛徽章:
0
发表于 2012-09-21 08:41 |显示全部楼层
本帖最后由 fiendcly 于 2012-09-21 08:42 编辑
linux_c_py_php 发表于 2012-09-20 13:50
自己读lighttpd/nginx/memcached源码, 网络开发能力基本就到头了.

问了白问.


@@ SOCKET 的應用應該算是最基本的應用.

網路應用的 LAYER 2,3,4 層的應用也很好玩....

L4 層應用應該算是入門不太覺得是到頭了.



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP