SealedLips/server/chatTask.cpp
2023-05-07 00:17:27 +08:00

61 lines
1.8 KiB
C++

#include "chatTask.h"
void *taskThread(void *arg){
printf("-------------------- new connect --------------------\n");
// pthread_mutex_lock(&_mxMessage); //lock the mutex
// pthread_mutex_unlock(&_mxMessage); //unlock the mutex
int clientFd = *((int *)arg);
char recvMsg[1024*2];
int recvLen;
int head_len = sizeof(DeMessageHead);
free(arg);
arg = NULL;
Session session(clientFd);
while (1)
{
if(session.readEvent() == RET_EXIT)
{
close(clientFd);
return NULL;
}
#if 0
memset(recvMsg,'\0',sizeof(recvMsg));
recvLen = read(clientFd, recvMsg, sizeof(DeMessageHead));
if (recvLen <= 0)
{ //下线
printf("offline\n");
close(clientFd);
return NULL;
}
printf("readLen:%d,HeadLen:%d\n",recvLen,sizeof(DeMessageHead));
memmove((void*)&headTmp,recvMsg,sizeof(DeMessageHead));
printf("mark:%s,encoded:%d,length:%d,version:%d\n",headTmp.mark,headTmp.encoded,headTmp.length,headTmp.version);
memset(recvMsg,'\0',sizeof(recvMsg));
recvLen = read(clientFd, recvMsg, sizeof(DeMessagePacket));
printf("readLen:%d,PacketLen:%d\n",recvLen,sizeof(DeMessagePacket));
if (recvLen <= 0)
{ //下线
printf("offline\n");
close(clientFd);
return NULL;
}
memmove((void*)&packetTmp,recvMsg,sizeof(DeMessagePacket));
printf("command:%d,error:%d,,mode:%d,sequence:%d\n",packetTmp.command,packetTmp.error,packetTmp.mode,packetTmp.sequence);
memset(recvMsg,'\0',sizeof(recvMsg));
recvLen = read(clientFd, recvMsg, headTmp.length - sizeof(DeMessagePacket));
printf("readLen:%d,HeadLen:%d\n",recvLen,sizeof(DeMessageHead));
if (recvLen <= 0)
{ //下线
printf("offline\n");
close(clientFd);
return NULL;
}
printf("msg:%s\n",recvMsg);
#endif
}
return NULL;
}