📄 pub.cpp
字号:
#include "pub.h"int PackDisposer::MsgPacker(Message msg,char * buffer)//打包后放到buffer里{ int n; int total=0; n=msg.mID.length(); strncpy(buffer,msg.mID.ascii(),n); total+=n; buffer[total++]='#'; n=msg.mRequest.length(); strncpy(&buffer[total],msg.mRequest.ascii(),n); total+=n; buffer[total++]='#'; n=msg.mContent.length(); strncpy(&buffer[total],msg.mContent.ascii(),n); total+=n; buffer[total++]='$'; return total;}bool PackDisposer::MsgUnPacker( Message &msg,char * buffer){ char *ptr; int n=0; if((ptr=strstr(&buffer[0],"#"))==NULL) return false; *ptr='\0'; msg.mID=QString(&buffer[n]); n+=ptr-buffer+1; if((ptr=strstr(&buffer[n],"#"))==NULL) return false; *ptr='\0'; msg.mRequest=QString(&buffer[n]); n+=ptr-&buffer[n]+1; if((ptr=strstr(&buffer[n],"$"))==NULL) return false; *ptr='\0'; msg.mContent=QString(&buffer[n]); n+=ptr-&buffer[n]+1; printf("int unpacker msg.mContent: %s\n", msg.mContent.ascii()); return true;}int PackDisposer::TablePacker(PlayerTableNode node, char *buffer)//打包后放到buffer里{ int n; int total=0; n=node.mPlayerID.length(); strncpy(buffer,node.mPlayerID.ascii(),n); total+=n; buffer[total++]='&'; n=node.mPlayerState.length(); strncpy(&buffer[total],node.mPlayerState.ascii(),n); total+=n; buffer[total++]='&'; n=node.mPlayerOpID.length(); strncpy(&buffer[total],node.mPlayerOpID.ascii(),n); total+=n; buffer[total++]='&'; n=node.mAddr.length(); strncpy(&buffer[total],node.mAddr.ascii(),n); total+=n; buffer[total++]='&'; n=node.mPort.length(); strncpy(&buffer[total],node.mPort.ascii(),n); total+=n; buffer[total++]='&'; n=node.mDeskNumber.length(); strncpy(&buffer[total],node.mDeskNumber.ascii(),n); total+=n; buffer[total++]='&'; n=node.mSide.length(); strncpy(&buffer[total],node.mSide.ascii(),n); total+=n; buffer[total++]='&'; return total;}bool PackDisposer::TableUnPacker(PlayerTableNode &node,char *buffer)//把buffer还原成格式{ char *ptr; int n=0; if((ptr=strstr(&buffer[0],"&"))==NULL) return false; *ptr='\0'; node.mPlayerID=QString(&buffer[n]); n+=ptr-buffer+1; if((ptr=strstr(&buffer[n],"&"))==NULL) return false; *ptr='\0'; node.mPlayerState=QString(&buffer[n]); n+=ptr-&buffer[n]+1; if((ptr=strstr(&buffer[n],"&"))==NULL) return false; *ptr='\0'; node.mPlayerOpID=QString(&buffer[n]); n+=ptr-&buffer[n]+1; if((ptr=strstr(&buffer[n],"&"))==NULL) return false; *ptr='\0'; node.mAddr=QString(&buffer[n]); n+=ptr-&buffer[n]+1; if((ptr=strstr(&buffer[n],"&"))==NULL) return false; *ptr='\0'; node.mPort=QString(&buffer[n]); n+=ptr-&buffer[n]+1; if((ptr=strstr(&buffer[n],"&"))==NULL) return false; *ptr='\0'; node.mDeskNumber=QString(&buffer[n]); n+=ptr-&buffer[n]+1; if((ptr=strstr(&buffer[n],"&"))==NULL) return false; *ptr='\0'; node.mSide=QString(&buffer[n]); n+=ptr-&buffer[n]+1; return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -