Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 1.49 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Socket File Transfer sending incomplete files in C#
  2. byte[] fileData = File.ReadAllBytes(filePath + fileName);
  3.             byte[] clientData = new byte[4 + fileNameByte.Length + fileData.Length];
  4.             byte[] fileNameLen = BitConverter.GetBytes(fileNameByte.Length);
  5.  
  6.             fileNameLen.CopyTo(clientData, 0);
  7.             fileNameByte.CopyTo(clientData, 4);
  8.             fileData.CopyTo(clientData, 4 + fileNameByte.Length);
  9.  
  10.             curMsg = "Connection to server ...";
  11.             clientSock.Connect(ipEnd);
  12.             int count;
  13.             curMsg = "File sending...";
  14.             count = clientSock.Send(clientData);
  15.             MessageBox.Show(count+" "+clientData.Length);
  16.  
  17.             curMsg = "Disconnecting...";
  18.             clientSock.Close();
  19.        
  20. sock.Listen(100);
  21.  
  22.             curMsg = "Running and waiting to receive file.";
  23.             Socket clientSock = sock.Accept();
  24.  
  25.             byte[] clientData = new byte[1024 * 5000];
  26.  
  27.             int receivedBytesLen = clientSock.Receive(clientData);
  28.             curMsg = "Receiving data...";
  29.  
  30.             int fileNameLen = BitConverter.ToInt32(clientData, 0);
  31.             string fileName = Encoding.ASCII.GetString(clientData, 4, fileNameLen);
  32.  
  33.             BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath +"/"+ fileName, FileMode.Append)); ;
  34.             bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen);
  35.  
  36.             curMsg = "Saving file...";
  37.  
  38.             bWrite.Close();
  39.             clientSock.Close();