⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 replicationdynamicslavestorageimpl.cs

📁 Perst开源实时数据库
💻 CS
字号:
namespace Perst.Impl
{
    using System;
    using System.Net;
    using System.Net.Sockets;
    using Perst;
    
    public class ReplicationDynamicSlaveStorageImpl : ReplicationSlaveStorageImpl
    { 
        public ReplicationDynamicSlaveStorageImpl(string host, int port) 
        { 
            this.host = host;
            this.port = port;
        }

        public override void Open(IFile file, int pagePoolSize) 
        {
            initialized = false;
            prevIndex = -1;
            outOfSync = true;
            base.Open(file, pagePoolSize);
        }

        protected override Socket GetSocket() 
        { 
            if (opened) 
            {
                throw new StorageError(StorageError.ErrorCode.CONNECTION_FAILURE);
            }
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
#if NET_FRAMEWORK_20
            foreach (IPAddress ip in Dns.GetHostEntry(host).AddressList) 
#else
            foreach (IPAddress ip in Dns.Resolve(host).AddressList) 
#endif
            { 
                try 
                {
                     socket.Connect(new IPEndPoint(ip, port));	
                     if (socket.Connected)
                     {	
                         return socket;
                     }
                 } 
                 catch (SocketException) {}
            }      
            return null;
        }

        protected string host;
        protected int    port;
    }
}    

    
                                               

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -