一, 项目部署时并发数的设置
在阿里云服务器上默认socket文件描述符打开是1024个
查看命令: ulimit -a
修改文件描述符
并发2000个
命令: ulimit -u 2000
二,编码过程和解码和
- 编码最后要调用 把链表结构转换 结构体 DER_ItAsn1_WriteSequence() 函数构成结构体
- 解码过程要调用 DER_ItAsn1_ReadSequence 转换链表结构
三, error
**malloc 开辟是内存的大小 **
void *handle = NULL;
pthreadInfo* info = (pthreadInfo *)malloc(sizeof(pthreadInfo));
//memcpy(info->handle, handle, strlen(handle));//error
info->handle = handle; //地址传递
设置文件描述符不阻塞
//避免文件描述符阻塞
int flag = fcntl(listenfd,F_GETFL);
flag |= O_NONBLOCK;
fcntl(listenfd,F_SETFL,flag);
四, 段错误
1, 动态库找不到的原因的
方法:
要找到动态库
五, 指针的传递的错误
VS 进行优化 到linux没有优化 所以要注意细节
int MsgMemFree(void **point, int type) {
int ret;
if (type == NULL || point == NULL) {
return -1;
}
else if (type == 0) {
free(*point);
*point = NULL;
}
switch (type)
{
case ID_MsgKey_Req:
ret = ReqFree(point); // ret = ReqFree(*point);
if (ret != 0) {
printf("方法名: %s ret = %d\n", __FUNCTION__, ret);
return ret;
}
break;
case ID_MsgKey_Res:
ret = ResFree(point);
if (ret != 0) {
printf("方法名: %s ret = %d\n", __FUNCTION__, ret);
return ret;
}
break;
default:
break;
}
return 0;
}