/// <summary> /// Receives a string from remote. /// </summary> /// <returns>String received.</returns> public ResponseResultGeneric <string> ReceiveString() { try { OnBeforeReceive(null); byte[] requestLen_Host2NetworkOrder_Array = new byte[4]; Receive(socket__, requestLen_Host2NetworkOrder_Array, 0, 4, 0); int requestLen_Host2NetworkOrder = BitConverter.ToInt32(requestLen_Host2NetworkOrder_Array, 0); int requestLen = IPAddress.NetworkToHostOrder(requestLen_Host2NetworkOrder); byte[] finalBytesReceive = new byte[requestLen]; Receive(socket__, finalBytesReceive, 0, requestLen, 0); DataPackage dp = (DataPackage)DataPackage.Deserialize(finalBytesReceive); if (dp.StreamType == StreamType.stString) { string ret = Encoding.ASCII.GetString(dp.Bytes, 0, dp.ActualBufferLength); ResponseResultGeneric <string> result = new ResponseResultGeneric <string>(); result.Result = ret; result.ErrorLevel = dp.ErrorLevel; return(result); } else { return(null); } } catch (Exception ex) { this.OnCommunicationException(new ExceptionEventArgs(ex)); return(null); } finally { OnAfterReceive(null); } }