init commit all code
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ProtoBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Entities
|
||||
{
|
||||
public class ReceiveFilter : FixedHeaderReceiveFilter<TransInfo>
|
||||
{
|
||||
public ReceiveFilter() : base(10)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected override int GetBodyLengthFromHeader(IBufferStream bufferStream, int length)
|
||||
{
|
||||
bufferStream.ReadInt16();
|
||||
var len = GetStrLength(bufferStream) + GetDataLength(bufferStream);
|
||||
return len;
|
||||
}
|
||||
|
||||
public override TransInfo ResolvePackage(IBufferStream bufferStream)
|
||||
{
|
||||
((Stream)bufferStream).Position = 2;
|
||||
var strLength = GetStrLength(bufferStream);
|
||||
var dataLength = GetDataLength(bufferStream);
|
||||
var allLength = strLength + dataLength;
|
||||
|
||||
|
||||
byte[] buffer = new byte[strLength];
|
||||
bufferStream.Read(buffer, 0, strLength);
|
||||
var json = Encoding.UTF8.GetString(buffer);
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
if (r == null)
|
||||
{
|
||||
return new TransInfo();
|
||||
}
|
||||
buffer = new byte[dataLength];
|
||||
bufferStream.Read(buffer, 0, dataLength);
|
||||
r.Data = buffer;
|
||||
return r;
|
||||
}
|
||||
|
||||
/*protected override TransInfo ResolveRequestInfo(ArraySegment<byte> header, byte[] bodyBuffer, int offset, int length)
|
||||
{
|
||||
var strLength = BitConverter.ToInt32(header.Array, header.Offset + 2);
|
||||
var dataLength = BitConverter.ToInt32(header.Array, header.Offset + 6);
|
||||
|
||||
var json = Encoding.UTF8.GetString(bodyBuffer.Skip(offset).Take(strLength).ToArray());
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
r.Data = bodyBuffer.Skip(offset + strLength).Take(dataLength).ToArray();
|
||||
return r;
|
||||
}*/
|
||||
|
||||
private int GetStrLength(IBufferStream bufferStream)
|
||||
{
|
||||
byte[] buffer = new byte[4];
|
||||
bufferStream.Read(buffer, 0, 4);
|
||||
var r = BitConverter.ToInt32(buffer, 0);
|
||||
return r;
|
||||
}
|
||||
|
||||
private int GetDataLength(IBufferStream bufferStream)
|
||||
{
|
||||
byte[] buffer = new byte[4];
|
||||
bufferStream.Read(buffer, 0, 4);
|
||||
var r = BitConverter.ToInt32(buffer, 0);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Test/Getf.Service.Transfer.Request.SDK/Entities/TransBody.cs
Normal file
18
Test/Getf.Service.Transfer.Request.SDK/Entities/TransBody.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Entities
|
||||
{
|
||||
public class TransBody
|
||||
{
|
||||
public string TargetAppID { get; set; }
|
||||
public string AppID { get; set; }
|
||||
public string AppSecret { get; set; }
|
||||
public string Action { get; set; }
|
||||
public string Param { get; set; }
|
||||
public string Key { get; set; }
|
||||
public string Url { get; set; }
|
||||
}
|
||||
}
|
||||
26
Test/Getf.Service.Transfer.Request.SDK/Entities/TransHead.cs
Normal file
26
Test/Getf.Service.Transfer.Request.SDK/Entities/TransHead.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Entities
|
||||
{
|
||||
public class TransHead
|
||||
{
|
||||
public string AppID { get; set; }
|
||||
public string AppSecret { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 1 注册 2 请求
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
public string Param { get; set; }
|
||||
|
||||
public string ServiceSecret { get; set; }
|
||||
|
||||
public long TimeStamp { get; set; }
|
||||
|
||||
public string Sign { get; set; }
|
||||
}
|
||||
}
|
||||
53
Test/Getf.Service.Transfer.Request.SDK/Entities/TransInfo.cs
Normal file
53
Test/Getf.Service.Transfer.Request.SDK/Entities/TransInfo.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ProtoBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Entities
|
||||
{
|
||||
public class TransInfo : IPackageInfo
|
||||
{
|
||||
public TransHead Head { get; set; }
|
||||
|
||||
public TransBody Body { get; set; }
|
||||
|
||||
public TransResult TransResultInfo { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public byte[] Data { get; set; }
|
||||
|
||||
public static TransInfo Parse(byte[] buffer)
|
||||
{
|
||||
var strlength = BitConverter.ToInt32(buffer, 2);
|
||||
var byteLength = BitConverter.ToInt32(buffer, 6);
|
||||
var json = Encoding.UTF8.GetString(buffer.Skip(10).Take(strlength).ToArray());
|
||||
if (json == String.Empty)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
r.Data = buffer.Skip(10 + strlength).Take(byteLength).ToArray();
|
||||
return r;
|
||||
}
|
||||
|
||||
public byte[] ToByte()
|
||||
{
|
||||
List<byte> bufferHead = new List<byte>();
|
||||
bufferHead.AddRange(Encoding.UTF8.GetBytes("@@"));
|
||||
List<byte> bufferBody = new List<byte>();
|
||||
var json = JsonConvert.SerializeObject(this);
|
||||
bufferBody.AddRange(Encoding.UTF8.GetBytes(json));
|
||||
var strLength = bufferBody.Count;
|
||||
if (Data != null)
|
||||
{
|
||||
bufferBody.AddRange(Data);
|
||||
}
|
||||
bufferHead.AddRange(BitConverter.GetBytes(strLength));
|
||||
bufferHead.AddRange(BitConverter.GetBytes(Data == null ? 0 : Data.Length));
|
||||
bufferHead.AddRange(bufferBody);
|
||||
return bufferHead.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Entities
|
||||
{
|
||||
public class TransResult
|
||||
{
|
||||
public string Key { get; set; }
|
||||
|
||||
public int Code { get; set; }
|
||||
|
||||
public string Message { get; set; }
|
||||
|
||||
public string Data { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{D13443BC-DECA-4FF5-B9FB-9B9EAEFC07F8}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Getf.Service.Transfer.Request.SDK</RootNamespace>
|
||||
<AssemblyName>Getf.Service.Transfer.Request.SDK</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\Test\packages\Newtonsoft.Json.12.0.1\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SuperSocket.ClientEngine, Version=0.8.0.12, Culture=neutral, PublicKeyToken=ee9af13f57f00acc, processorArchitecture=MSIL">
|
||||
<HintPath>..\Test\packages\SuperSocket.ClientEngine.0.8.0.12\lib\net40-client\SuperSocket.ClientEngine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SuperSocket.ProtoBase, Version=1.7.0.17, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL">
|
||||
<HintPath>..\Test\packages\SuperSocket.ProtoBase.1.7.0.17\lib\net40\SuperSocket.ProtoBase.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Entities\TransBody.cs" />
|
||||
<Compile Include="Entities\TransHead.cs" />
|
||||
<Compile Include="Entities\TransInfo.cs" />
|
||||
<Compile Include="Entities\TransResult.cs" />
|
||||
<Compile Include="Helpers\Md5Helper.cs" />
|
||||
<Compile Include="Helpers\TypeHelper.cs" />
|
||||
<Compile Include="ReceiveFilter.cs" />
|
||||
<Compile Include="RequestSevice.cs" />
|
||||
<Compile Include="TcpClientService.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
25
Test/Getf.Service.Transfer.Request.SDK/Helpers/Md5Helper.cs
Normal file
25
Test/Getf.Service.Transfer.Request.SDK/Helpers/Md5Helper.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Helpers
|
||||
{
|
||||
public static class Md5Helper
|
||||
{
|
||||
public static string Md5(string str)
|
||||
{
|
||||
MD5 md5 = MD5.Create();
|
||||
byte[] data = Encoding.UTF8.GetBytes(str);
|
||||
data = md5.ComputeHash(data);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < data.Length; i++)
|
||||
{
|
||||
sb.Append(data[i].ToString("x2"));
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
23
Test/Getf.Service.Transfer.Request.SDK/Helpers/TypeHelper.cs
Normal file
23
Test/Getf.Service.Transfer.Request.SDK/Helpers/TypeHelper.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK.Helpers
|
||||
{
|
||||
public static class TypeHelper
|
||||
{
|
||||
public static DateTime ToDateTime(long timeStamp)
|
||||
{
|
||||
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
|
||||
DateTime dt = startTime.AddSeconds(timeStamp);
|
||||
return dt;
|
||||
}
|
||||
public static long GetTimeStamp()
|
||||
{
|
||||
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
|
||||
long t = (long)(DateTime.Now - startTime).TotalSeconds;
|
||||
return t;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("Getf.Service.Transfer.Request.SDK")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Hewlett-Packard")]
|
||||
[assembly: AssemblyProduct("Getf.Service.Transfer.Request.SDK")]
|
||||
[assembly: AssemblyCopyright("Copyright © Hewlett-Packard 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("d13443bc-deca-4ff5-b9fb-9b9eaefc07f8")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
77
Test/Getf.Service.Transfer.Request.SDK/ReceiveFilter.cs
Normal file
77
Test/Getf.Service.Transfer.Request.SDK/ReceiveFilter.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
using Getf.Service.Transfer.Request.SDK.Entities;
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ProtoBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK
|
||||
{
|
||||
|
||||
public class ReceiveFilter : FixedHeaderReceiveFilter<TransInfo>
|
||||
{
|
||||
public ReceiveFilter() : base(10)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected override int GetBodyLengthFromHeader(IBufferStream bufferStream, int length)
|
||||
{
|
||||
bufferStream.ReadInt16();
|
||||
var len = GetStrLength(bufferStream) + GetDataLength(bufferStream);
|
||||
return len;
|
||||
}
|
||||
|
||||
public override TransInfo ResolvePackage(IBufferStream bufferStream)
|
||||
{
|
||||
((Stream)bufferStream).Position = 2;
|
||||
var strLength = GetStrLength(bufferStream);
|
||||
var dataLength = GetDataLength(bufferStream);
|
||||
var allLength = strLength + dataLength;
|
||||
|
||||
|
||||
byte[] buffer = new byte[strLength];
|
||||
bufferStream.Read(buffer, 0, strLength);
|
||||
var json = Encoding.UTF8.GetString(buffer);
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
if (r == null)
|
||||
{
|
||||
return new TransInfo();
|
||||
}
|
||||
buffer = new byte[dataLength];
|
||||
bufferStream.Read(buffer, 0, dataLength);
|
||||
r.Data = buffer;
|
||||
return r;
|
||||
}
|
||||
|
||||
/*protected override TransInfo ResolveRequestInfo(ArraySegment<byte> header, byte[] bodyBuffer, int offset, int length)
|
||||
{
|
||||
var strLength = BitConverter.ToInt32(header.Array, header.Offset + 2);
|
||||
var dataLength = BitConverter.ToInt32(header.Array, header.Offset + 6);
|
||||
|
||||
var json = Encoding.UTF8.GetString(bodyBuffer.Skip(offset).Take(strLength).ToArray());
|
||||
var r = JsonConvert.DeserializeObject<TransInfo>(json);
|
||||
r.Data = bodyBuffer.Skip(offset + strLength).Take(dataLength).ToArray();
|
||||
return r;
|
||||
}*/
|
||||
|
||||
private int GetStrLength(IBufferStream bufferStream)
|
||||
{
|
||||
byte[] buffer = new byte[4];
|
||||
bufferStream.Read(buffer, 0, 4);
|
||||
var r = BitConverter.ToInt32(buffer, 0);
|
||||
return r;
|
||||
}
|
||||
|
||||
private int GetDataLength(IBufferStream bufferStream)
|
||||
{
|
||||
byte[] buffer = new byte[4];
|
||||
bufferStream.Read(buffer, 0, 4);
|
||||
var r = BitConverter.ToInt32(buffer, 0);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
137
Test/Getf.Service.Transfer.Request.SDK/RequestSevice.cs
Normal file
137
Test/Getf.Service.Transfer.Request.SDK/RequestSevice.cs
Normal file
@@ -0,0 +1,137 @@
|
||||
using Getf.Service.Transfer.Request.SDK.Entities;
|
||||
using Getf.Service.Transfer.Request.SDK.Helpers;
|
||||
using Newtonsoft.Json;
|
||||
using SuperSocket.ClientEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK
|
||||
{
|
||||
public class RequestSevice : IDisposable
|
||||
{
|
||||
private readonly EasyClient TcpClient;
|
||||
|
||||
private TransInfo _TransInfo;
|
||||
|
||||
ManualResetEvent _ManualResetEvent = new ManualResetEvent(false);
|
||||
|
||||
private string AppID = ConfigurationManager.AppSettings["Service_Transfer_AppID"];
|
||||
private string AppSecret = ConfigurationManager.AppSettings["Service_Transfer_AppSecret"];
|
||||
private string Key = ConfigurationManager.AppSettings["Service_Transfer_Key"];
|
||||
private string Ip;
|
||||
private int Port;
|
||||
|
||||
/*public RequestSevice()
|
||||
{
|
||||
var c = ConfigurationManager.AppSettings["Service_Transfer_AddressInfo"].Split(':');
|
||||
_TcpClientService = new TcpClientService(c[0], int.Parse(c[1]));
|
||||
}*/
|
||||
public RequestSevice()
|
||||
{
|
||||
var c = ConfigurationManager.AppSettings["Service_Transfer_AddressInfo"].Split(':');
|
||||
Ip = c[0];
|
||||
Port = int.Parse(c[1]);
|
||||
TcpClient = new EasyClient();
|
||||
}
|
||||
|
||||
public RequestSevice(string ip, int port)
|
||||
{
|
||||
Ip = ip;
|
||||
Port = port;
|
||||
TcpClient = new EasyClient();
|
||||
}
|
||||
|
||||
public RequestSevice(string ip, int port, string appID, string appSecret, string key)
|
||||
{
|
||||
Ip = ip;
|
||||
Port = port;
|
||||
AppID = appID;
|
||||
AppSecret = appSecret;
|
||||
Key = key;
|
||||
TcpClient = new EasyClient();
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_ManualResetEvent.Dispose();
|
||||
TcpClient.Close();
|
||||
}
|
||||
|
||||
public TransInfo GetResult(TransInfo transInfo)
|
||||
{
|
||||
_TransInfo = transInfo;
|
||||
TcpClient.Initialize(new ReceiveFilter(), OnDataGeted);
|
||||
TcpClient.Connected += OnConnected;
|
||||
TcpClient.Error += OnError;
|
||||
TcpClient.ConnectAsync(new IPEndPoint(IPAddress.Parse(Ip), Port));
|
||||
_ManualResetEvent.WaitOne();
|
||||
return _TransInfo;
|
||||
}
|
||||
public TransInfo GetResult(string targetAppID, string action = null, string param = null, string appID = null, string appSecret = null)
|
||||
{
|
||||
_TransInfo = GetTransInfo(targetAppID, action, param, appID, appSecret);
|
||||
return GetResult(_TransInfo);
|
||||
}
|
||||
|
||||
public TransInfo GetTransInfo(string targetAppID, string action, string param = null, string appID = null, string appSecret = null)
|
||||
{
|
||||
var ts = TypeHelper.GetTimeStamp();
|
||||
var r = new TransInfo()
|
||||
{
|
||||
Head = new TransHead()
|
||||
{
|
||||
AppID = AppID,
|
||||
AppSecret = AppSecret,
|
||||
TimeStamp = ts,
|
||||
Type = 2,
|
||||
Sign = Md5Helper.Md5(ts + Key)
|
||||
},
|
||||
Body = new TransBody()
|
||||
{
|
||||
Action = action,
|
||||
AppID = appID,
|
||||
AppSecret = appSecret,
|
||||
Param = param,
|
||||
TargetAppID = targetAppID
|
||||
}
|
||||
};
|
||||
return r;
|
||||
}
|
||||
|
||||
private void OnDataGeted(TransInfo transInfo)
|
||||
{
|
||||
_TransInfo = transInfo;
|
||||
_ManualResetEvent.Set();
|
||||
}
|
||||
|
||||
private void OnError(object sender, ErrorEventArgs e)
|
||||
{
|
||||
_TransInfo.Head = null;
|
||||
_TransInfo.Body = null;
|
||||
_TransInfo.TransResultInfo = new TransResult()
|
||||
{
|
||||
Code = -101,
|
||||
Message = e.Exception.Message
|
||||
};
|
||||
try
|
||||
{
|
||||
_ManualResetEvent.Set();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void OnConnected(object sender, EventArgs e)
|
||||
{
|
||||
TcpClient.Send(_TransInfo.ToByte());
|
||||
}
|
||||
}
|
||||
}
|
||||
173
Test/Getf.Service.Transfer.Request.SDK/TcpClientService.cs
Normal file
173
Test/Getf.Service.Transfer.Request.SDK/TcpClientService.cs
Normal file
@@ -0,0 +1,173 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK
|
||||
{
|
||||
public class TcpClientService : IDisposable
|
||||
{
|
||||
private Socket _SocketClient;
|
||||
private readonly string _IP;
|
||||
private readonly int _Port;
|
||||
|
||||
public event Action<TcpClientService, string> OnError;
|
||||
|
||||
public event Action<TcpClientService> OnConnected;
|
||||
|
||||
public event Action<TcpClientService, byte[]> OnDataGeted;
|
||||
|
||||
bool IsDisposed = false;
|
||||
|
||||
public TcpClientService(string ip, int port)
|
||||
{
|
||||
_IP = ip;
|
||||
_Port = port;
|
||||
}
|
||||
|
||||
public void Connect()
|
||||
{
|
||||
if (_SocketClient != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_SocketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
_SocketClient.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
|
||||
IPAddress ipAddress = IPAddress.Parse(_IP);
|
||||
var endPoint = new IPEndPoint(ipAddress, _Port);
|
||||
_SocketClient.BeginConnect(endPoint, new AsyncCallback(Connected), null);
|
||||
}
|
||||
|
||||
private void Connected(IAsyncResult asyncResult)
|
||||
{
|
||||
try
|
||||
{
|
||||
_SocketClient.EndConnect(asyncResult);
|
||||
TriggerConnected();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
TriggerError(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public void ReceiveLoop(int times = -1)
|
||||
{
|
||||
Thread thread = new Thread(() =>
|
||||
{
|
||||
int i = 0;
|
||||
while (!IsDisposed)
|
||||
{
|
||||
if (times > 0 && i >= times)
|
||||
{
|
||||
break;
|
||||
}
|
||||
Receive();
|
||||
}
|
||||
});
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
public void Receive()
|
||||
{
|
||||
byte[] buffer = new byte[100 * 1024 * 1024];
|
||||
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
|
||||
try
|
||||
{
|
||||
_SocketClient.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(Received), new object[] { manualResetEvent, buffer });
|
||||
}
|
||||
catch
|
||||
{
|
||||
manualResetEvent.Dispose();
|
||||
}
|
||||
manualResetEvent.WaitOne();
|
||||
manualResetEvent.Dispose();
|
||||
buffer = null;
|
||||
}
|
||||
|
||||
private void Received(IAsyncResult asyncResult)
|
||||
{
|
||||
var objs = asyncResult.AsyncState as object[];
|
||||
var manualResetEvent = objs[0] as ManualResetEvent;
|
||||
var buffer = objs[1] as byte[];
|
||||
try
|
||||
{
|
||||
_SocketClient.EndReceive(asyncResult);
|
||||
TriggerDataGeted(buffer);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
TriggerError(e.Message);
|
||||
}
|
||||
manualResetEvent.Set();
|
||||
}
|
||||
|
||||
public void Send(byte[] buffer)
|
||||
{
|
||||
_SocketClient.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(Sended), null);
|
||||
}
|
||||
|
||||
private void Sended(IAsyncResult asyncResult)
|
||||
{
|
||||
try
|
||||
{
|
||||
_SocketClient.EndSend(asyncResult);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
TriggerError(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerError(string message)
|
||||
{
|
||||
if (OnError != null)
|
||||
{
|
||||
OnError(this, message);
|
||||
}
|
||||
}
|
||||
private void TriggerConnected()
|
||||
{
|
||||
if (OnConnected != null)
|
||||
{
|
||||
OnConnected(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerDataGeted(byte[] buffer)
|
||||
{
|
||||
if (OnDataGeted != null)
|
||||
{
|
||||
OnDataGeted(this, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
IsDisposed = true;
|
||||
try
|
||||
{
|
||||
if (_SocketClient != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
_SocketClient.Disconnect(false);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
_SocketClient.Dispose();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
113
Test/Getf.Service.Transfer.Request.SDK/TcpSevice.cs
Normal file
113
Test/Getf.Service.Transfer.Request.SDK/TcpSevice.cs
Normal file
@@ -0,0 +1,113 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Getf.Service.Transfer.Request.SDK
|
||||
{
|
||||
public class TcpSevice : IDisposable
|
||||
{
|
||||
public event Action<TcpSevice, byte[]> OnDataGetted;
|
||||
|
||||
private string _IP;
|
||||
private int _Port;
|
||||
TcpClient _TcpClient;
|
||||
|
||||
public bool IsConnected = false;
|
||||
|
||||
private NetworkStream MNetworkStream;
|
||||
|
||||
public TcpSevice(string ip, int port)
|
||||
{
|
||||
_IP = ip;
|
||||
_Port = port;
|
||||
}
|
||||
|
||||
public void Connect()
|
||||
{
|
||||
if (_TcpClient != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_TcpClient = new TcpClient();
|
||||
var asyncCallback = new AsyncCallback(Connected);
|
||||
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
|
||||
_TcpClient.BeginConnect(_IP, _Port, asyncCallback, new object[] { manualResetEvent });
|
||||
manualResetEvent.WaitOne();
|
||||
manualResetEvent.Dispose();
|
||||
IsConnected = true;
|
||||
}
|
||||
|
||||
private void Connected(IAsyncResult asyncResult)
|
||||
{
|
||||
var objs = asyncResult.AsyncState as object[];
|
||||
|
||||
var manualResetEvent = (ManualResetEvent)objs[0];
|
||||
|
||||
_TcpClient.EndConnect(asyncResult);
|
||||
manualResetEvent.Set();
|
||||
}
|
||||
|
||||
public void Receive()
|
||||
{
|
||||
if (MNetworkStream == null)
|
||||
{
|
||||
MNetworkStream = _TcpClient.GetStream();
|
||||
}
|
||||
var buffer = new byte[100 * 1024 * 1024];
|
||||
if (MNetworkStream.CanRead)
|
||||
{
|
||||
MNetworkStream.BeginRead(buffer, 0, buffer.Length, new AsyncCallback(Received), new object[] { MNetworkStream, buffer });
|
||||
}
|
||||
}
|
||||
|
||||
private void Received(IAsyncResult asyncResult)
|
||||
{
|
||||
var objs = asyncResult.AsyncState as object[];
|
||||
var stream = objs[0] as Stream;
|
||||
var buffer = objs[1] as byte[];
|
||||
stream.EndRead(asyncResult);
|
||||
if (OnDataGetted != null)
|
||||
{
|
||||
OnDataGetted(this, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
public void Send(byte[] buffer)
|
||||
{
|
||||
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
|
||||
if (MNetworkStream == null)
|
||||
{
|
||||
MNetworkStream = _TcpClient.GetStream();
|
||||
}
|
||||
if (MNetworkStream.CanWrite)
|
||||
{
|
||||
MNetworkStream.BeginWrite(buffer, 0, buffer.Length, new AsyncCallback(Sended), new object[] { manualResetEvent, MNetworkStream, buffer });
|
||||
}
|
||||
}
|
||||
|
||||
private void Sended(IAsyncResult asyncResult)
|
||||
{
|
||||
var objs = asyncResult.AsyncState as object[];
|
||||
var manualResetEvent = (ManualResetEvent)objs[0];
|
||||
var stream = objs[1] as Stream;
|
||||
var buffer = objs[2] as byte[];
|
||||
stream.EndWrite(asyncResult);
|
||||
stream.Flush();
|
||||
//stream.Dispose();
|
||||
manualResetEvent.Set();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (MNetworkStream != null)
|
||||
{
|
||||
MNetworkStream.Close();
|
||||
MNetworkStream.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
9505
Test/Getf.Service.Transfer.Request.SDK/bin/Debug/Newtonsoft.Json.xml
Normal file
9505
Test/Getf.Service.Transfer.Request.SDK/bin/Debug/Newtonsoft.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
41817a7aec2b6983431c0d02f1d86ce22528e5b5
|
||||
@@ -0,0 +1,15 @@
|
||||
D:\WORK\x行政审批\z住建委行政审批\new新版本行政审批201810\CodeSvn_XZSP201810NewVersion\web\PublicSystems\ConstructionForm.UIL\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.csproj.AssemblyReference.cache
|
||||
D:\WORK\x行政审批\z住建委行政审批\new新版本行政审批201810\CodeSvn_XZSP201810NewVersion\web\PublicSystems\ConstructionForm.UIL\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.csproj.AssemblyReference.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\Getf.Service.Transfer.Request.SDK.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\Getf.Service.Transfer.Request.SDK.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\Newtonsoft.Json.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\SuperSocket.ClientEngine.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\SuperSocket.ProtoBase.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\Newtonsoft.Json.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\Newtonsoft.Json.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Debug\SuperSocket.ProtoBase.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.csproj.CopyComplete
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Debug\Getf.Service.Transfer.Request.SDK.pdb
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
a2800fab8ecb5f82d60205028c65ba25af8e973f
|
||||
@@ -0,0 +1,13 @@
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\Getf.Service.Transfer.Request.SDK.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\Getf.Service.Transfer.Request.SDK.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\Newtonsoft.Json.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\SuperSocket.ClientEngine.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\SuperSocket.ProtoBase.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\Newtonsoft.Json.pdb
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\Newtonsoft.Json.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\bin\Release\SuperSocket.ProtoBase.xml
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Release\Getf.Service.Transfer.Request.SDK.csproj.AssemblyReference.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Release\Getf.Service.Transfer.Request.SDK.csproj.CoreCompileInputs.cache
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Release\Getf.Service.Transfer.Request.SDK.csproj.CopyComplete
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Release\Getf.Service.Transfer.Request.SDK.dll
|
||||
D:\WORK\C宁波拆迁\neiwai_transfer\Test\Getf.Service.Transfer.Request.SDK\obj\Release\Getf.Service.Transfer.Request.SDK.pdb
|
||||
Binary file not shown.
Binary file not shown.
6
Test/Getf.Service.Transfer.Request.SDK/packages.config
Normal file
6
Test/Getf.Service.Transfer.Request.SDK/packages.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net40" />
|
||||
<package id="SuperSocket.ClientEngine" version="0.8.0.12" targetFramework="net40" />
|
||||
<package id="SuperSocket.ProtoBase" version="1.7.0.17" targetFramework="net40" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user