void ReceiveProcess(Socket clientSocket) { try { if (m_bufQueue.Count <= 0) { return; } if (m_serverConnected == false) { return; } if (m_initiateTransfer == true) { File.AppendAllText("c:\\tcp.txt", "1 : " + m_bufQueue.Count.ToString() + Environment.NewLine); if (m_bufQueue.Count < m_fileSize) { return; } File.AppendAllText("c:\\tcp.txt", "2 : " + m_bufQueue.Count.ToString() + Environment.NewLine); m_bufQueue.read(readBuffer, m_fileSize); File.AppendAllText("c:\\tcp.txt", "3 : " + m_bufQueue.Count.ToString() + Environment.NewLine); m_binWriter.Write(readBuffer, 0, m_fileSize); File.AppendAllText("c:\\tcp.txt", "4 : " + m_bufQueue.Count.ToString() + Environment.NewLine); m_fileSize = 0; m_initiateTransfer = false; m_binWriter.Close(); m_binWriter = null; File.AppendAllText("c:\\tcp.txt", "5 : " + m_bufQueue.Count.ToString() + Environment.NewLine); if (m_bufQueue.Count < 6) { return; } File.AppendAllText("c:\\tcp.txt", "6 : " + m_bufQueue.Count.ToString() + Environment.NewLine); } m_bufQueue.read(readBuffer, 6); string str = Encoding.ASCII.GetString(readBuffer, 0, 6); string[] s = str.Split(new Char[] { '|' }); if (s[0] != "@") { return; } while (m_bufQueue.Count < int.Parse(s[1])) { Thread.Sleep(1); } m_bufQueue.read(readBuffer, int.Parse(s[1])); str = Encoding.ASCII.GetString(readBuffer, 0, int.Parse(s[1])); string[] jdata = str.Split(new Char[] { '|' }); if (jdata[0] != "sendcredintials" && m_userName != m_loginName && m_hasPassword != m_password) { string jData = m_wja.SendErrorMessage("TCP Server has rejected client credentials"); SendMessage(clientSocket, jData); return; } switch (jdata[0]) { case "sendcredintials": { } break; case "initiatefiletransfer": { m_fileTransferInfo = m_wja.DeserializeObject <ServerJsonApi.jFileTransfer>(jdata[1]); m_initiateTransfer = true; m_fileSize = int.Parse(m_fileTransferInfo.fileSize); string fieldDir = m_fileTransferInfo.DirectoryName.Substring("c:\\".Length); string pathOfFile = m_storageDirectory + "\\" + m_fileTransferInfo.guidName + "\\" + m_fileTransferInfo.userName + "\\" + fieldDir; if (Directory.Exists(pathOfFile) == false) { Directory.CreateDirectory(pathOfFile); } pathOfFile += "\\" + m_fileTransferInfo.fileName; m_binWriter = new BinaryWriter(File.Open(pathOfFile, FileMode.Create)); } break; } } catch (Exception err) { Console.WriteLine(err.Message); } }