num=recv(clientSocketId,recvPduMesage,strlen(recvPduMesage),0); 当用strlen时候老是出现链接上又断开,当时挺郁闷的,浪费一个多小时,后来反应过来在Linux c中一般都把recvPduMesage数组的长度直接写在这里,strlen()返回的长度不包含‘\0’,所有在写长度时候strlen()+1,strlen中的参数是指向数组的指针。
memset(recvPduMesage, 0, sizeof(recvPduMesage));
recv(clientSocketId,recvPduMesage,strlen(recvPduMesage),0);
在recv前面调用memset()就把recvPduMesage给清零啦,所以strlen(recvPduMesage)返回0,没有字节,所以链接容易断开。