Error in Code
Error in Code
list
list //
Thread th = new Thread(ReadData); th.Start(client); // Thread th1 = new Thread(CopyFile); ager main isay user karta hon Read thread k sath to sirf file recv karta hay phr read data wala thread nahe chalata // th1.Start(client); list.BeginAcceptTcpClient(new AsyncCallback(AcceptClient), list); } catch (Exception ex) { MessageBox.Show(ex.Message); } } public void ReadData(object obj) { try { client = obj as TcpClient; NetworkStream ns = client.GetStream(); while (true) { if (ns.DataAvailable) {
StreamReader sr = new StreamReader(ns); string tem = ""; string[] login; tem = sr.ReadLine(); login = tem.Split('|'); if (login[0] == "ID") { MsgToTree(tem,client.Client.RemoteEndPoint.ToString());
MessageBox.Show(tem); ns.Flush(); } Yahan say data byte form main a rah ahay jis ki waja say sanme ki fileNamelen =0 k baraber ho ja rahe hay pahlay jo stream reader nay read ker li values else { string receivedPath = GetReceivedPath(); List<byte> mybyte = new List<byte>(); while (ns.DataAvailable) { mybyte.Add(Convert.ToByte(ns.ReadByte())); } //int receivedBytesLen = cns.Read(clientData, 0, clientData.Length);// clientSock.Receive(clientData);
int fileNameLen = BitConverter.ToInt32(mybyte.ToArray(), 0); string fileName = Encoding.ASCII.GetString(mybyte.ToArray(), 4, fileNameLen); // Encoding.ASCII.GetString BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath + fileName, FileMode.Append)); bWrite.Write(mybyte.ToArray(), 4 + fileNameLen, mybyte.Count - 4 - fileNameLen);
MessageBox.Show("File Has Been Copied"); bWrite.Close(); } // ns.Flush(); // MsgToTree(tem); } Thread.Sleep(1000); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private static string GetReceivedPath() { string RecvFolder = "RecvData";//ConfigurationManager.AppSettings["Path"]; string receivedPath = @"C:\" + RecvFolder + "\\"; return receivedPath; }
public void CopyFile(object nm) { try { TcpClient kl = nm as TcpClient; //ns = kl.GetStream(); StreamReader sr = new StreamReader(ns); //string[] check = sr.ReadLine().Split('|'); //if (check[0] == "ID") //{ // Thread th = new Thread(ReadData); // th.Start(client); //} //string RecvFolder = "RecvData";//ConfigurationManager.AppSettings["Path"]; //string receivedPath = @"C:\" + RecvFolder + "\\";//ConfigurationManager.AppSettings["Path"]; NetworkStream cns; cns= kl.GetStream(); // byte[] clientData = new byte[1024 * 5000]; while (true) { if (cns.DataAvailable) {
string receivedPath = GetReceivedPath(); List<byte> mybyte = new List<byte>(); while (cns.DataAvailable) { mybyte.Add(Convert.ToByte(cns.ReadByte())); } //int receivedBytesLen = cns.Read(clientData, 0, clientData.Length);// clientSock.Receive(clientData);
int fileNameLen = BitConverter.ToInt32(mybyte.ToArray(), 0); string fileName = Encoding.ASCII.GetString(mybyte.ToArray(), 4, fileNameLen); // Encoding.ASCII.GetString BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath + fileName, FileMode.Append)); bWrite.Write(mybyte.ToArray(), 4 + fileNameLen, mybyte.Count - 4 - fileNameLen);
MessageBox.Show("File Has Been Copied"); bWrite.Close(); // } // cns.Flush(); } cns.Flush(); Thread.Sleep(1000); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }