Example #1
0
        /// <summary>Send files</summary>
        /// <param name="handler">handler of sender or sender itself</param>
        /// <param name="fullPaths">files full paths</param>
        public void SendFiles(Socket handler, List <string> fullPaths)
        {
            try {
                List <SocketPack> subPacks = new List <SocketPack>();
                foreach (string path in fullPaths)
                {
                    if (File.Exists(path))
                    {
                        string     fileName = Path.GetFileName(path);
                        byte[]     body     = File.ReadAllBytes(path);
                        SocketPack pack     = new SocketPack
                        {
                            DataType = "File",
                            FileName = fileName,
                            DataBody = body
                        };
                        subPacks.Add(pack);
                    }
                }

                using (NetworkStream stream = new NetworkStream(handler)) {
                    SocketPack pack = new SocketPack
                    {
                        DataType = "Files",
                        SubPacks = subPacks
                    };
                    var formater = new BinaryFormatter();
                    formater.Serialize(stream, pack);
                    stream.Flush();
                }
            }
            catch (Exception ex) {
                ShutDownAndClose(handler);
            }
        }
Example #2
0
 /// <summary>Send file</summary>
 /// <param name="handler">handler of sender or sender itself</param>
 /// <param name="fullPath">file full path</param>
 public void SendFile(Socket handler, string fullPath)
 {
     try {
         if (File.Exists(fullPath))
         {
             byte[] data;
             using (MemoryStream stream = new MemoryStream()) {
                 string     fileName = Path.GetFileName(fullPath);
                 byte[]     body     = File.ReadAllBytes(fullPath);
                 SocketPack pack     = new SocketPack
                 {
                     DataType = "File",
                     FileName = fileName,
                     DataBody = body
                 };
                 var formater = new DataContractSerializer(typeof(SocketPack));
                 formater.WriteObject(stream, pack);
                 data = stream.ToArray();
             }
             Thread.Sleep(100);
             handler.Send(data);
         }
     }
     catch (Exception ex) {
         ShutDownAndClose(handler);
     }
 }
Example #3
0
        /// <summary>Recv</summary>
        /// <param name="handler">handler of sender or sender itself</param>
        public SocketPack Recv(Socket handler)
        {
            SocketPack recvPack = null;

            try {
                using (NetworkStream stream = new NetworkStream(handler)) {
                    var formatter = new BinaryFormatter();
                    recvPack = (SocketPack)formatter.Deserialize(stream);
                }
            }
            catch (Exception ex) {
                ShutDownAndClose(handler);
            }

            return(recvPack);
        }
Example #4
0
        /// <summary>Recv</summary>
        /// <param name="handler">handler of sender or sender itself</param>
        public SocketPack Recv(Socket handler)
        {
            SocketPack recvPack = null;

            try {
                byte[] bytes       = new byte[30 * 1024 * 1024];
                int    certainSize = handler.Receive(bytes);
                Array.Resize(ref bytes, certainSize);

                using (MemoryStream stream = new MemoryStream(bytes)) {
                    var serializer = new DataContractSerializer(typeof(SocketPack));
                    recvPack = (SocketPack)serializer.ReadObject(stream);
                }
            }
            catch (Exception ex) {
                ShutDownAndClose(handler);
            }

            return(recvPack);
        }
Example #5
0
        /// <summary>Send string</summary>
        /// <param name="handler">handler of sender or sender itself</param>
        /// <param name="msg">string message</param>
        public void SendStr(Socket handler, string msg)
        {
            try {
                using (NetworkStream stream = new NetworkStream(handler)) {
                    byte[]     body = Encoding.UTF8.GetBytes(msg);
                    SocketPack pack = new SocketPack
                    {
                        DataType = "String",
                        FileName = "",
                        DataBody = body
                    };
                    var formater = new BinaryFormatter();
                    formater.Serialize(stream, pack);

                    stream.Flush();
                }
            }
            catch (Exception ex) {
                ShutDownAndClose(handler);
            }
        }
Example #6
0
 /// <summary>Send string</summary>
 /// <param name="handler">handler of sender or sender itself</param>
 /// <param name="msg">string message</param>
 public void SendStr(Socket handler, string msg)
 {
     try {
         byte[] data;
         using (MemoryStream stream = new MemoryStream()) {
             byte[]     body = Encoding.UTF8.GetBytes(msg);
             SocketPack pack = new SocketPack
             {
                 DataType = "String",
                 FileName = "",
                 DataBody = body
             };
             var formater = new DataContractSerializer(typeof(SocketPack));
             formater.WriteObject(stream, pack);
             data = stream.ToArray();
         }
         Thread.Sleep(100);
         handler.Send(data);
     }
     catch (Exception ex) {
         ShutDownAndClose(handler);
     }
 }
Example #7
0
 /// <summary>Send file</summary>
 /// <param name="handler">handler of sender or sender itself</param>
 /// <param name="fullPath">file full path</param>
 public void SendFile(Socket handler, string fullPath)
 {
     try {
         using (NetworkStream stream = new NetworkStream(handler)) {
             if (File.Exists(fullPath))
             {
                 string     fileName = Path.GetFileName(fullPath);
                 byte[]     body     = File.ReadAllBytes(fullPath);
                 SocketPack pack     = new SocketPack
                 {
                     DataType = "File",
                     FileName = fileName,
                     DataBody = body
                 };
                 var formater = new BinaryFormatter();
                 formater.Serialize(stream, pack);
                 stream.Flush();
             }
         }
     }
     catch (Exception ex) {
         ShutDownAndClose(handler);
     }
 }