//该构造函数只能内部调用 private void InitTcpChannel(int id, ChannelSettings Settings) { ChannelId = id; _Settings = Settings; _ChannelSocket = null; _ChannelIsClosed = true; ReceiveEventArgs = new SocketAsyncEventArgs(); ReceiveEventArgs.Completed += (object sender, SocketAsyncEventArgs ReceiveEventArgs) => { ProcessReceive(ReceiveEventArgs); };//new EventHandler<SocketAsyncEventArgs>(OnReceiveEventCompleted); ActiveDateTime = DateTime.Now; _RecvStream = new ByteStream(); _RecvBuffer = new byte[Settings.RecvBufferSize]; _SendLocked = 0; OnMessageReceived = null; //SSL相关参数初始化 _UseSSL = false; _AsSslClient = false; _TargetHost = null; _SslProtocol = SslProtocols.None; _Certificate = null; _StreamSSL = null; }
public SslMessageChannel(int id, ChannelSettings Settings, X509Certificate2 Certificate) : base(id, Settings) { _Certificate = Certificate; _StreamSSL = new StreamSSL(); _StreamSSL.EncryptOutput = OnSslEncryptedData; _StreamSSL.DecryptOutput = OnSslDecryptedData; }
public ClientSSL() { _ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _StreamSSL = new StreamSSL() { DecryptOutput = OnSslDecryptedData }; }
public SslMessageClient(int id, ClientSettings Settings) : base(id, Settings) { _Settings = Settings; _ChannelSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _StreamSSL = new StreamSSL(); _StreamSSL.EncryptOutput = OnSslEncryptedData; _StreamSSL.DecryptOutput = OnSslDecryptedData; }
//初始化SSL通道 private void InitSslChannnel(bool AsSslClient, X509Certificate2 Certificate, string TargetHost, SslProtocols SslProtocol = SslProtocols.None) { _UseSSL = true; _AsSslClient = AsSslClient; _TargetHost = TargetHost; _SslProtocol = SslProtocol; _Certificate = Certificate; _StreamSSL = new StreamSSL() { DecryptOutput = (Byte[] buffer, Int32 offset, Int32 count) => { _RecvStream.Write(buffer, offset, count); ProcessReceivedData(); return(true); } }; }
public ServerSSL(int port) { Listener = new TcpListener(IPAddress.Any, port); client = null; _StreamSSL = new StreamSSL() { DecryptOutput = (byte[] buffer, int offset, int count) => { string msg = Encoding.UTF8.GetString(buffer, offset, count); Console.Write("Recv:" + msg); msg = msg.ToUpper(); _StreamSSL.Encrypt(msg); return(true); } }; X509Cert = new X509Certificate2("E:/MessageFramework/SelfCert.pfx", "messageframework"); }