Example #1
0
char* CInConnection::receiveMessage(int& messageSize)
{ // Returns the data size if >0, 0=we had a read time out, -1=we have an error
  if (!_socketConnectWasOk)
  {
    messageSize=-1; // error
    return(NULL);
  }
  std::vector<char> receivedData;
  while (true)
  {
    std::vector<char> inDat;
    int result=_receiveSimplePacket(inDat);
    if (result<0)
    {
      messageSize=result+1; // error or read time-out
      return(NULL);
    }
    receivedData.insert(receivedData.end(),inDat.begin(),inDat.end());
    if (result==0)
    { // success
      messageSize=int(receivedData.size());
      char* retBuff=new char[messageSize];
      for (int i=0;i<messageSize;i++)
        retBuff[i]=receivedData[i];
      return(retBuff);
    }
  }
}
Example #2
0
char* CSocketOutConnection::receiveReplyData(int& dataSize)
{ // Returns the data size if >0, otherwise error
	if (_socketConn==(SOCKET)-1)
	{
		dataSize=-2; // error
		return(NULL);
	}

	std::vector<char> receivedData;
	while (true)
	{
		std::vector<char> inDat;
		int result=_receiveSimplePacket(inDat);
		if (result<0)
		{
			dataSize=0; // error
			return(NULL);
		}
		receivedData.insert(receivedData.end(),inDat.begin(),inDat.end());
		if (result==0)
		{ // success
			dataSize=int(receivedData.size());
			char* retBuff=new char[dataSize];
			for (int i=0;i<dataSize;i++)
				retBuff[i]=receivedData[i];
			return(retBuff);
		}
	}
}