找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4090|回复: 5

用ace移植unix socket的问题请教

[复制链接]
发表于 2007-12-26 22:19:42 | 显示全部楼层 |阅读模式
要把一个Unix程序移植到win32,其中的进程通信部分采用了unix socket,功能不多,主要就是read,write,现在要把它移植到win32平台上,大致看了一下,ace实现类似功能的不少,请教一下,用ace的哪个功能来实现比较好?最好就是直接了当一些,不要拐太多的弯,因为程序以后要重写,肯定会重新架构的,现在移植不考虑性能问题。

ace新手,请多指教,谢谢。
 楼主| 发表于 2007-12-26 22:19:49 | 显示全部楼层
用ACE的话,框架变化很大,困难程度,还得看你的现有代码的情况。
 楼主| 发表于 2007-12-26 22:20:07 | 显示全部楼层
首先,谢谢楼上的回复。

原来的代码无非就是:封装了一个UnixSocket类,其中包含Connect、Accept、Read和Write方法,类似于ACE_LSOCK,但是ACE_LSOCK也是不能在Win32平台下使用的,所以我现在要找一个替代方案,重新实现这个UnixSocket类就可以了:可以通过这个类建立起进程通信渠道并传递数
 楼主| 发表于 2007-12-26 22:20:12 | 显示全部楼层
那应该不算难改,不过如果你移植到windows上面,恐怕用Proactor会比较困难 - 异步的读写和unix下面的非异步读写有不少差异。如果你用Reactor,windows下面的性能就不算太好,这是select决定的,和ACE实现没关系,你可以试试TP_Reactor,可能比较好些。
 楼主| 发表于 2007-12-26 22:20:17 | 显示全部楼层
用ACE_Reactor跑框架过程,再用ACE封装的socket读写代替原来的socket封装,ACE_SOCK_Stream。
 楼主| 发表于 2007-12-26 22:20:27 | 显示全部楼层
啊,看来是我没有说清楚。

unix domain socket是本地进程通信的,不是网络上不同主机的进程间通信。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-24 11:16 , Processed in 0.017648 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表