用ace移植unix socket的问题请教
要把一个Unix程序移植到win32,其中的进程通信部分采用了unix socket,功能不多,主要就是read,write,现在要把它移植到win32平台上,大致看了一下,ace实现类似功能的不少,请教一下,用ace的哪个功能来实现比较好?最好就是直接了当一些,不要拐太多的弯,因为程序以后要重写,肯定会重新架构的,现在移植不考虑性能问题。ace新手,请多指教,谢谢。 用ACE的话,框架变化很大,困难程度,还得看你的现有代码的情况。 首先,谢谢楼上的回复。
原来的代码无非就是:封装了一个UnixSocket类,其中包含Connect、Accept、Read和Write方法,类似于ACE_LSOCK,但是ACE_LSOCK也是不能在Win32平台下使用的,所以我现在要找一个替代方案,重新实现这个UnixSocket类就可以了:可以通过这个类建立起进程通信渠道并传递数 那应该不算难改,不过如果你移植到windows上面,恐怕用Proactor会比较困难 - 异步的读写和unix下面的非异步读写有不少差异。如果你用Reactor,windows下面的性能就不算太好,这是select决定的,和ACE实现没关系,你可以试试TP_Reactor,可能比较好些。 用ACE_Reactor跑框架过程,再用ACE封装的socket读写代替原来的socket封装,ACE_SOCK_Stream。 啊,看来是我没有说清楚。
unix domain socket是本地进程通信的,不是网络上不同主机的进程间通信。
页:
[1]