ACE 开发者
文章
日志
文件
圈子
论坛
业内新闻
意见建议
求职招聘
.Net技术
项目管理经验交流
常用工具
IBM Rational
敏捷技术
数据库
中间件
P2P技术
服务器端程序开发
Tcp/IP和Socket
C++学习
开发心得和读书笔记
ACE综合应用
ACE基础应用
海阔天空
您的位置:
ACE 开发者
>>
论坛
>>
ACE基础应用
>>
查看帖子
字体:
小
中
大
求ACE编写的通信程序,要求是传一个数据结构……
sanweisushe 发表于: 2008-11-18 19:20 来源:
ACE 开发者
具体要求是客户端发一个数据结构,比如结构体给服务器,然后服务器接收并输出,本人刚开始接触ACE,但是这个应用又急需……
最新回复
winston at 2008-11-18 21:31:57
不要用ACE写,如果你初学ACE,又着急的话。先完成任务第一。
winston at 2008-11-18 21:32:29
对于缺乏基础的兄弟,ACE的难度和学习曲线会超出你的想象。
marry at 2008-11-21 15:51:02
[
本帖最后由 marry 于 2008-11-21 17:05 编辑
]
nettoobad at 2008-11-22 23:48:56
也就是说你要对所谓整编,解编理解才行。非常好解决。参考第一册中的日志例子代码就能搞定。
newzai at 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 at 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));
其他类型按照此方法应该也可以
查看全部回复
我也来说两句
最新更新主题
ACE_Message_Block长度的问题?
[求助] ACE_High_Res_Timer的问题,用了...
ACE队列,入队失败
ACE NPV2 C++NPv2_Select_Reactor_Log_...
ACE NPV2 C++NPv2_Select_Reactor_Log_...
ACE_HEX_DUMP的内存泄露
ACE udp绑定ip失败
schedule_timer()向反应器注册问题...
ACE_Message_Block链表是不是在多线程...
关于ACE_NTRACE的问题
月度关注热点
ACE在Linux 下编译的奇怪问题....
关于proactor问题
ACE_Asynch_Acceptor 内存泄露
ACE_WIN32_Proactor
[求助] ACE_Message_Block 的 release...
ACE_Message_Block链表是不是在多线程...
关于ACE_Message_Block自动析构的问题...
关于Proactor的异步问题。
请问用proactor模式来传输视频...
请问ACE_Task怎样动态增加、减少线程数...
最新回复
[ 本帖最后由 marry 于 2008-11-21 17:05 编辑 ]
所有的TCP/IP协议的网络编程思想都是一样的。
ACE只不过是把这些思想融合有序的组织在一起、共广大程序员使用,是我们无需在去做那么多重复的劳动而已。
至于网络编程的思想分为2大块。
1 关于UDP方面的编程
2 关于TCP方面的编程
比如在非常典型的VOIP协议 H.323中,TCP和UDP的编程应用就非常的经典。
一般来说UDP编程是相对简单,就是收包和发包,无需自己分割每一个包,但是必须负责重传。
而TCP则与UDP相反,不需要自己处理重传,但是需要自己分割每一个包,因为TCP是流,你可以把流想象为长江的流水。而不是一座座山峰。要把江河的水隔开你必须有水闸。这个水闸就是你程序中定义的规则用于分割数据流的。
多接触一些就知道这里面的奥妙的。其实等你懂了以后这些道理非常简单的。但是对于刚入门的网络编程者、这方面确实有点难理解。
关键的要点还是要充分的理解TCP/IP协议。
写函数如下:
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));
其他类型按照此方法应该也可以