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()); }