📄 connect.cpp~
字号:
#include "connect.h"namespace MSpace {Connect::Connect(){ MessageLength=0; mReadFd = 3; mWriteFd = 4;}void Connect::PutOutput(const char* out){ strcpy(mBuffer + sizeof(long), out); unsigned int len = strlen(out); unsigned int netlen = htonl(len); memcpy(mBuffer, &netlen, sizeof(netlen)); write(mWriteFd, mBuffer, len + sizeof(netlen));}void Connect::PutOutputs(const std::string& str){ PutOutput(str.c_str());}bool Connect::SelectInput(){ fd_set readfds; FD_ZERO(&readfds); FD_SET(mReadFd, &readfds); return select(mReadFd+1, &readfds, 0, 0,0) > 0;}bool Connect::GetInput(){ // read from commserver memset(mBuffer, 0, sizeof(mBuffer)); if(!SelectInput()) return false; unsigned int bytesRead = read(mReadFd, mBuffer, sizeof(mBuffer)); // read count if(bytesRead < sizeof(unsigned int)) return false; unsigned int msgLen = ntohl(*(unsigned int*)mBuffer); MessageLength=msgLen; unsigned int msgRead = bytesRead - sizeof(unsigned int); char* offset = mBuffer + bytesRead; while(msgRead < msgLen){ if(!SelectInput()) return false; msgRead += read(mReadFd, offset, sizeof(mBuffer) - msgRead); offset += msgRead; } (*offset) = 0; return true;}char* Connect::GetMsg(){ return mBuffer+ sizeof(long);}Connect::~Connect(){}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -