Ejemplo n.º 1
0
        public static void SendFile(string fileName, string title)
        {
            var fileId = Guid.NewGuid().ToString();
            var temp   = Encoding.Unicode.GetBytes(title + Divpar
                                                   + Path.GetFileName(fileName) + Divpar
                                                   + fileId + Divpar
                                                   + new FileInfo(fileName).Length);
            var final = GetSendBuffer(CompressBytes(temp));

            HClient.Send(final, final.Length);
            using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                long tot = 0;
                while (tot != fs.Length)
                {
                    var  bytes = new byte[131072];
                    long cnt   = fs.Read(bytes, 0, 131072);
                    var  tempc = GetSendBuffer(CompressBytes(Encoding.Unicode.GetBytes(title + Divpar
                                                                                       + Path.GetFileName(fileName) + Divpar
                                                                                       + fileId + Divpar + tot + Divpar)
                                                             .Concat(bytes.Take((int)cnt)).ToArray()));
                    tot += cnt;
                    HClient.Send(tempc, tempc.Length);
                }
                fs.Close();
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            dwgFile          = args[0];
            dwgPath          = dwgFile.Replace(".dwg", "") + "\\";
            pkgInfo.IsHeader = true;
            pkgInfo.Length   = pkgHeaderSize;
            if (client.Connect("192.168.2.18", 1137) == true)
            {
                using (var fs = new FileStream(dwgFile, FileMode.Open))
                {
                    // 封包体
                    byte[] bodyBytes = new byte[fs.Length];
                    fs.Read(bodyBytes, 0, bodyBytes.Length);
                    fs.Close();
                    // 封包头
                    PkgHeader header = new PkgHeader();
                    header.Id       = ++id;
                    header.BodySize = bodyBytes.Length;
                    byte[] headerBytes = client.StructureToByte <PkgHeader>(header);


                    // 组合最终发送的封包 (封包头+封包体)
                    byte[] sendBytes = DwgUtils.GetSendBuffer(headerBytes, bodyBytes);
                    client.Send(sendBytes, sendBytes.Length);
                }
            }

            client.OnClose   += Client_OnClose;
            client.OnConnect += Client_OnConnect;
            client.OnReceive += Client_OnReceive;
            client.OnSend    += Client_OnSend;

            System.Diagnostics.Process.GetCurrentProcess().WaitForExit();
        }
Ejemplo n.º 3
0
 public void Send(byte[] data, int offset, int length)
 {
     client.Send(data, offset, length);
 }