Пример #1
0
        //该构造函数只能内部调用
        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;
        }
Пример #2
0
 public SslMessageChannel(int id, ChannelSettings Settings, X509Certificate2 Certificate)
     : base(id, Settings)
 {
     _Certificate             = Certificate;
     _StreamSSL               = new StreamSSL();
     _StreamSSL.EncryptOutput = OnSslEncryptedData;
     _StreamSSL.DecryptOutput = OnSslDecryptedData;
 }
Пример #3
0
 public ClientSSL()
 {
     _ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     _StreamSSL    = new StreamSSL()
     {
         DecryptOutput = OnSslDecryptedData
     };
 }
Пример #4
0
 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;
 }
Пример #5
0
        //初始化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);
                }
            };
        }
Пример #6
0
        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");
        }