sanweisushe 发表于 2008-11-18 19:20:55

求ACE编写的通信程序,要求是传一个数据结构……

具体要求是客户端发一个数据结构,比如结构体给服务器,然后服务器接收并输出,本人刚开始接触ACE,但是这个应用又急需……

winston 发表于 2008-11-18 21:31:57

不要用ACE写,如果你初学ACE,又着急的话。先完成任务第一。

winston 发表于 2008-11-18 21:32:29

对于缺乏基础的兄弟,ACE的难度和学习曲线会超出你的想象。

marry 发表于 2008-11-21 15:51:02

:D :D :D :D :D

[ 本帖最后由 marry 于 2008-11-21 17:05 编辑 ]

nettoobad 发表于 2008-11-22 23:48:56

这个应该使用CDR来解决了

也就是说你要对所谓整编,解编理解才行。非常好解决。参考第一册中的日志例子代码就能搞定。

newzai 发表于 2008-11-24 20:03:10

大家何必把网络编程非要和ACE强求的联合在一起呢?
所有的TCP/IP协议的网络编程思想都是一样的。
ACE只不过是把这些思想融合有序的组织在一起、共广大程序员使用,是我们无需在去做那么多重复的劳动而已。

至于网络编程的思想分为2大块。
1 关于UDP方面的编程
2 关于TCP方面的编程

比如在非常典型的VOIP协议 H.323中,TCP和UDP的编程应用就非常的经典。
一般来说UDP编程是相对简单,就是收包和发包,无需自己分割每一个包,但是必须负责重传。
而TCP则与UDP相反,不需要自己处理重传,但是需要自己分割每一个包,因为TCP是流,你可以把流想象为长江的流水。而不是一座座山峰。要把江河的水隔开你必须有水闸。这个水闸就是你程序中定义的规则用于分割数据流的。

多接触一些就知道这里面的奥妙的。其实等你懂了以后这些道理非常简单的。但是对于刚入门的网络编程者、这方面确实有点难理解。
关键的要点还是要充分的理解TCP/IP协议。

marry 发表于 2008-11-25 17:11:05

别的地方看的,我就放到论坛上,以后好查阅
写函数如下:
ACE_Message_Block* mblk = new ACE_Message_Block(sizeof(Struct));
ACE_CDR::mb_align(mblk);
memcpy(mblk->wr_ptr(), struct_, sizeof(Struct));


读函数如下:
ACE_Message_Block* chunk=null;
Msg *struct_=new Struct;
memset(struct,0,sizeof(Struct));
memcpy(struct,chunk->rd_ptr(),sizeof(Struct));

其他类型按照此方法应该也可以
页: [1]
查看完整版本: 求ACE编写的通信程序,要求是传一个数据结构……