Click here to Skip to main content
15,885,244 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
hello i am building a simple winform application for data transfer using Socket programming in c#.

i have a client and server wherin client can retrive,upload, and delete a file in server using my application. everything is working fine, but i am unable to open retrieved or uploaded file. i shows error message that the file has been corrupted. i am in need to transfer all typres of file including word docu, .txt,.xls, zip format,images etc.

file operation like transfer deleting etc are working fine. but no file is getting opened after recieving it.

please help me where i am going wrong. i am coding network programmes for the first time
here is my code:
server
C#
private void ReadFile(string FilePath, string IPAdress, int RecievingPort)
       {

           TcpListener ClientListener = new TcpListener(IPAddress.Any, RecievingPort);
           for (; ; )
           {
               if (ServerProperties.WiatForClient)
               {
                   ClientListener.Start();
                   byte[] ReadBuffer = new byte[1024];
                   if (ClientListener.Pending())
                   {
                       int RecBytes;
                       string MsgFrmClient = "";
                       TcpClient client = ClientListener.AcceptTcpClient();
                       NetworkStream ClientStream = client.GetStream();
                       String ClientIp = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString();
                       if (IPAdress == ClientIp)
                       {
                           while (ClientStream.Read(ReadBuffer, 0, ReadBuffer.Length) > 0)
                           {

                               FileStream Fs = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Write);
                               while ((RecBytes = ClientStream.Read(ReadBuffer, 0, ReadBuffer.Length)) > 0)
                               {
                                   Fs.Write(ReadBuffer, 0, RecBytes);
                                   //totalrecbytes += RecBytes;
                               }
                               Fs.Close();
                               ServerProperties.WiatForClient = false;


                           }

                       }
                       ClientStream.Close();
                       client.Close();
                   }
               }
               else
               {
                   ClientListener.Stop();
                   break;

               }
           }

       }


i am using same methodolagy on both server and client for retriving and uploding file.
for uploading to server i ll be passing filename as a message to the server before calling this method.
Posted
Updated 17-Feb-15 19:27pm
v4

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900