/// <summary> /// 小文件上传响应 /// client : SocketPacketFlag.UploadRequest + path string(BytesParser encoded), content bytes /// server : SocketPacketFlag.UploadAllowed + new byte[1] /// or : SocketPacketFlag.UploadDenied + err_msg /// </summary> /// <param name="client"></param> /// <param name="bytes"></param> private void ResponseUploadSmallFile(SocketResponder responder, byte[] bytes) { string err_msg = ""; try { if ((GetIdentity(responder) & SocketIdentity.WriteFile) == 0) { throw new Exception("Socket not authenticated."); } int pt = 0; string path = BytesConverter.ParseString(bytes, ref pt); byte[] contentBytes = new byte[bytes.Length - pt]; Array.Copy(bytes, pt, contentBytes, 0, contentBytes.Length); File.WriteAllBytes(path, contentBytes); } catch (Exception ex) { err_msg = ex.Message; } if (string.IsNullOrEmpty(err_msg)) { responder.SendBytes(SocketPacketFlag.UploadAllowed, new byte[1]); } else { responder.SendBytes(SocketPacketFlag.UploadDenied, err_msg); } }
public static RouteNode FromBytes(byte[] bytes, ref int index) { RouteNode rn = new RouteNode(); rn.Address = TCPAddress.FromBytes(bytes, ref index); rn.Name = BytesConverter.ParseString(bytes, ref index); return(rn); }