一.概述 2
二.例子程序简要说明 2
三.server端 2
四.client端 3
五.Valgrind的使用 3
六.参考文档 4
七.备注 4
一.概述
在gSOAP的server和client端连接中,内存的处理有些是gSOAP自己处理的,有些需要我们来考虑。本文档主要就其中目前可能遇到的内存问题,做一个简要的介绍及说明。另外,简要介绍了一下内存检测工具valgirnd的使用及注意事项。
二.例子程序简要说明
例子程序实现的是client端传入一个参数num,server端返回一个字符串,是一段不知道多长的buffer,这样需要在server端动态分配空间。这段内存的管理是本文主要讨论的问题。例子的实现可能有些冗余,但是为了说明一些问题,所以做了一些多余的实现。
得到的server端名称为getmsgserver,client端名称为getmsgtest,server启动在8888端口。
三.server端
省略server端的main函数,其功能实现函数如下:
int ns__getmsg(struct soap *getmsg_soap, int num, char **msg)
{
//下面这个空间为我们自己分配的空间,所以后来需要用free显式释放,在xmail系统中可能是从mss获取到的一段buffer,例子中的1024是随意填写的
char *a=(char*)malloc(1024);