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(); } }
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(); }
public void Send(byte[] data, int offset, int length) { client.Send(data, offset, length); }