下载了《ACE自适配通信环境中文技术文档》,很不错,感谢马维达同志。

  从中篇第二章开始看,按照上一篇的方法将数据报的代码放入项目编译、运行,发现几个
问题:
  1. 服务端收不到消息,检查客户端发现发送失败,追查下去,可能由于ACE的版本更新,
按原来的写法在远端地址初始化时出现了问题,给地址时应该以"IP:Port"的方式给出。
  2. 客户端发送成功后,服务端成功收到并回执,但是客户端没收到。检查后,发现是客
户端接收长度不够,将SIZE_DATA改成29就行了。
  3. 继续调试,发现客户端第二次发送时,服务端突然退出了。一检查,由于客户端将新
收下的字符串发送出去了,超过了第一次发送的字符串的长度,服务器接收失败。因此,需要
在客户端接收成功后,重新设置需要发送的字符串。

  下面是修改过的代码:

 1ACE学习笔记(3)——第二个例子:UDP    //Server
 2ACE学习笔记(3)——第二个例子:UDP    #include "ace/OS.h"
 3ACE学习笔记(3)——第二个例子:UDP    #include "ace/SOCK_Dgram.h"
 4ACE学习笔记(3)——第二个例子:UDP    #include "ace/INET_Addr.h"
 5ACE学习笔记(3)——第二个例子:UDP    #include "ace/Log_Msg.h"
 6ACE学习笔记(3)——第二个例子:UDP    
 7ACE学习笔记(3)——第二个例子:UDP    #ifndef _DEBUG
 8ACE学习笔记(3)——第二个例子:UDP    #pragma comment( lib, "ace.lib" )
 9ACE学习笔记(3)——第二个例子:UDP    #else 
10ACE学习笔记(3)——第二个例子:UDP    #pragma comment( lib, "aced.lib" )
11ACE学习笔记(3)——第二个例子:UDP    #endif
12ACE学习笔记(3)——第二个例子:UDP    
13ACE学习笔记(3)——第二个例子:UDP    #define DATA_BUFFER_SIZE 1024
14ACE学习笔记(3)——第二个例子:UDP    #define SIZE_DATA 19
15ACE学习笔记(3)——第二个例子:UDP    
16ACE学习笔记(3)——第二个例子:UDP    class Server
17

 1ACE学习笔记(3)——第二个例子:UDP    //Client
 2ACE学习笔记(3)——第二个例子:UDP    #include "ace/OS.h"
 3ACE学习笔记(3)——第二个例子:UDP    #include "ace/SOCK_Dgram.h"
 4ACE学习笔记(3)——第二个例子:UDP    #include "ace/INET_Addr.h"
 5ACE学习笔记(3)——第二个例子:UDP    #include "ace/Log_Msg.h"
 6ACE学习笔记(3)——第二个例子:UDP    
 7ACE学习笔记(3)——第二个例子:UDP    #ifndef _DEBUG
 8ACE学习笔记(3)——第二个例子:UDP    #pragma comment( lib, "ace.lib" )
 9ACE学习笔记(3)——第二个例子:UDP    #else 
10ACE学习笔记(3)——第二个例子:UDP    #pragma comment( lib, "aced.lib" )
11ACE学习笔记(3)——第二个例子:UDP    #endif
12ACE学习笔记(3)——第二个例子:UDP    
13ACE学习笔记(3)——第二个例子:UDP    #define DATA_BUFFER_SIZE 1024
14ACE学习笔记(3)——第二个例子:UDP    #define SIZE_DATA 29
15ACE学习笔记(3)——第二个例子:UDP    
16ACE学习笔记(3)——第二个例子:UDP    class Client
17    }

相关文章: