public FileRecordEntry(string file, FileProtocol fileProtocol, FileInsertionMode fileInsertionMode, string description)
 {
     File = file;
     InsertionMode = fileInsertionMode;
     Description = description;
     Protocol = fileProtocol;
 }
Beispiel #2
0
        private void receiveFile(FileProtocol protocol)
        {
            // 获取远程客户端的位置;
            IPEndPoint endpoint = client.Client.RemoteEndPoint as IPEndPoint;
            IPAddress ip = endpoint.Address;

            // 使用新端口号,获得远程用于接收文件的端口;
            endpoint = new IPEndPoint(ip, protocol.Port);

            // 连接到远程客户端;
            TcpClient localClient;
            try
            {
                localClient = new TcpClient();
                localClient.Connect(endpoint);
            }
            catch
            {
                Console.WriteLine("无法连接到客户端 --> {0}", endpoint);
                return;
            }

            // 获取发送文件的流;
            NetworkStream streamToClient = localClient.GetStream();

            // 随机生成一个在当前目录下的文件名称;
            string path =
                Environment.CurrentDirectory + "/" + generateFileName(protocol.FileName);

            byte[] fileBuffer = new byte[1024]; // 每次收1KB;
            FileStream fs = new FileStream(path, FileMode.CreateNew, FileAccess.Write);

            // 从缓存buffer中读入到文件流中;
            int bytesRead;
            int totalBytes = 0;
            do
            {
                bytesRead = streamToClient.Read(buffer, 0, BufferSize);
                fs.Write(buffer, 0, bytesRead);
                totalBytes += bytesRead;
                Console.WriteLine("Receiving {0} bytes ...", totalBytes);
            } while (bytesRead > 0);

            Console.WriteLine("Total {0} bytes received, Done!", totalBytes);

            streamToClient.Dispose();
            fs.Dispose();
            localClient.Close();
        }
Beispiel #3
0
 /// <summary> 附件数据处理
 /// </summary>
 /// <param name="protocol"></param>
 public static void Deal(FileProtocol protocol)
 {
 }