コード例 #1
0
        private async Task Run()
        {
            ValidateProperties();

            var listener = new TcpListener(IPAddress.Any, port);

            listener.Start();
            while (run)
            {
                if (listener.Pending())
                {
                    GetSocket getSocket        = () => listener.AcceptSocket();
                    var       secureConnection = new SecureServerConnection(new TcpConnection(getSocket), DataFormatters.AsymmetricCipher, DataFormatters.SymmetricCipher);
                    var       objectConnection = new DefaultObjectConnection(secureConnection)
                    {
                        Serializer = DataFormatters.Serializer
                    };
                    OnInboundConnection?.Invoke(objectConnection);
                    await objectConnection.Start();
                }
            }
        }
コード例 #2
0
        public IObjectConnection Create(string ip, int port)
        {
            ValidateProperties();

            GetSocket getSocket = () =>
            {
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                socket.ReceiveBufferSize = 2048;
                socket.SendBufferSize    = 2048;
                socket.NoDelay           = true;
                socket.Connect(new IPEndPoint(IPAddress.Parse(ip), port));

                return(socket);
            };

            var secureConnection = new SecureClientConnection(new TcpConnection(getSocket), DataFormatters.AsymmetricCipher, DataFormatters.SymmetricCipher);
            var objectConnection = new DefaultObjectConnection(secureConnection)
            {
                Serializer = DataFormatters.Serializer
            };

            return(objectConnection);
        }