Exemplo n.º 1
0
        public override void AttachServer(SC.Interfaces.IPluginServer server)
        {
            base.AttachServer(server);

            System.Net.Sockets.SocketType sockType;
            System.Net.Sockets.ProtocolType protoType;
            if (server.Protocol == System.Net.TransportType.Tcp || server.Protocol == System.Net.TransportType.ConnectionOriented)
            {
                sockType = System.Net.Sockets.SocketType.Stream;
                protoType = System.Net.Sockets.ProtocolType.Tcp;
            }
            else if (server.Protocol == System.Net.TransportType.Udp || server.Protocol == System.Net.TransportType.Connectionless)
            {
                sockType = System.Net.Sockets.SocketType.Dgram;
                protoType = System.Net.Sockets.ProtocolType.Udp;
            }
            else
                throw new ArgumentException("Invalid protocol specified");

            socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, sockType, protoType);

            socket.Blocking = false;
            socket.DontFragment = false;
            socket.EnableBroadcast = false;
            if (protoType == System.Net.Sockets.ProtocolType.Tcp)
            {
                socket.LingerState.Enabled = false;
                socket.LingerState.LingerTime = 0;
                socket.NoDelay = true;
            }
            socket.UseOnlyOverlappedIO = false;

            socket.Connect(server.EndPoint);

            Logger.Info("Attached to server " + server.GetName());
        }