احصائياتى

الردود
4

المشاهدات
1047
 
Hazem
.:: المدير العام::.

    غير متواجد

المشاركات
2,306

+التقييم
0.84

تاريخ التسجيل
Apr 2019

الاقامة
Egypt

نظام التشغيل
windows 7

رقم العضوية
1
2019-07-08, 05:04 PM
المشاركة 1
2019-07-08, 05:04 PM
المشاركة 1
افتراضي سوكت كونكر لتخفيف البنج

السلام عليكم ورحمة الله وبركاته
معانا اليوم سوكت ايحل مشاكل ناس كتير
وده لتخغيف البنجج لو تقيل في سيرفيرك يلا نبداء
افتح كلاس ClientWrapper.cs

بدل الي فيه بدول

كود:
namespace Phoenix_Project.Network.Sockets 
{ 
    
using System; 
    
using System.Collections.Generic; 
    
using System.Net.Sockets; 
    
using System.Runtime.InteropServices; 
    
using System.Threading; 
    
using Phoenix_Project; 

    public class 
ClientWrapper 
    
{ 
        public 
bool Alive; 
        public 
byte[] Buffer; 
        public 
int BufferSize; 
        public 
Action<byte[], int, ClientWrapper> Callback; 
        public 
object Connector; 
        public 
string IP; 
        public 
Time32 LastReceive; 
        public 
Time32 LastReceiveCall; 
        public 
string LocalIp; 
        public 
string MAC; 
        public 
bool OverrideTiming; 
        private 
Queue<byte[]> SendQueue; 
        private 
object SendSyncRoot; 
        public 
ServerSocket Server; 
        public 
System.Net.Sockets.Socket Socket; 
        private 
IDisposable[] TimerSubscriptions; 

        [
DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true)] 
        public static 
extern int closesocket(IntPtr s); 
        public 
void Create(System.Net.Sockets.Socket socket, ServerSocket server, Action<byte[], int, ClientWrapper> callBack) 
        { 
            
this.Callback = callBack; 
            
this.BufferSize = 0x7ff; 
            
this.Socket = socket; 
            
this.Server = server; 
            
this.Buffer = new byte[this.BufferSize]; 
            
this.LastReceive = Time32.Now; 
            
this.OverrideTiming = false; 
            
this.SendQueue = new Queue<byte[]>(); 
            
this.SendSyncRoot = new object(); 
            
this.TimerSubscriptions = new IDisposable[] { World.Subscribe<ClientWrapper>(Program.World.ConnectionReview, this, World.GenericThreadPool), World.Subscribe<ClientWrapper>(Program.World.ConnectionReceive, this, World.ReceivePool), World.Subscribe<ClientWrapper>(Program.World.ConnectionSend, this, World.SendPool) }; 
        } 

        public 
void Disconnect() 
        { 
            
lock (this.Socket) 
            { 
                
int num = 0x3e8; 
                while (((
this.SendQueue.Count > 0) && this.Alive) && (num-- > 0)) 
                { 
                    
Thread.Sleep(1); 
                } 
                if (
this.Alive) 
                { 
                    
this.Alive = false; 
                    for (
int i = 0; i < this.TimerSubscriptions.Length; i++) 
                    { 
                        
this.TimerSubscriptions[i].Dispose(); 
                    } 
                    
shutdown(this.Socket.Handle, ShutDownFlags.SD_BOTH); 
                    
closesocket(this.Socket.Handle); 
                    
this.Socket.Dispose(); 
                } 
            } 
        } 

        private 
void doReceive(int available) 
        { 
            
this.LastReceive = Time32.Now; 
            try 
            { 
                if (
available > this.Buffer.Length) 
                { 
                    
available = this.Buffer.Length; 
                } 
                
int num = this.Socket.Receive(this.Buffer, available, SocketFlags.None); 
                if (
num != 0) 
                { 
                    if (
this.Callback != null) 
                    { 
                        
this.Callback(this.Buffer, num, this); 
                    } 
                } 
                else 
                { 
                    
this.Server.InvokeDisconnect(this); 
                } 
            } 
            catch (
SocketException) 
            { 
                
this.Server.InvokeDisconnect(this); 
            } 
            catch (
Exception exception) 
            { 
                
Phoenix_Project.Console.WriteLine(exception, ConsoleColor.DarkYellow); 
            } 
        } 

        private static 
void endSend(IAsyncResult ar) 
        { 
            
ClientWrapper asyncState = ar.AsyncState as ClientWrapper; 
            try 
            { 
                
asyncState.Socket.EndSend(ar); 
            } 
            catch 
            { 
                
asyncState.Server.InvokeDisconnect(asyncState); 
            } 
        } 

        private 
bool isValid() 
        { 
            if (
this.Alive || (this.TimerSubscriptions == null)) 
            { 
                return 
true; 
            } 
            for (
int i = 0; i < this.TimerSubscriptions.Length; i++) 
            { 
                
this.TimerSubscriptions[i].Dispose(); 
            } 
            return 
false; 
        } 

        public 
void Send(byte[] data) 
        { 
            
lock (this.SendSyncRoot) 
            { 
                
this.SendQueue.Enqueue(data); 
            } 
        } 

        [
DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true)] 
        public static 
extern int shutdown(IntPtr s, ShutDownFlags how); 
        private 
bool TryDequeueSend(out byte[] buffer) 
        { 
            
buffer = null; 
            
lock (this.SendSyncRoot) 
            { 
                if (
this.SendQueue.Count != 0) 
                { 
                    
buffer = this.SendQueue.Dequeue(); 
                } 
            } 
            return (
buffer != null); 
        } 

        public static 
void TryReceive(ClientWrapper wrapper) 
        { 
            
wrapper.LastReceiveCall = Time32.Now; 
            if (
wrapper.isValid()) 
            { 
                try 
                { 
                    
bool flag = wrapper.Socket.Poll(0, SelectMode.SelectRead); 
                    
int available = wrapper.Socket.Available; 
                    if (
available > 0) 
                    { 
                        
wrapper.doReceive(available); 
                    } 
                    else if (
flag) 
                    { 
                        
wrapper.Server.InvokeDisconnect(wrapper); 
                    } 
                } 
                catch (
SocketException) 
                { 
                    
wrapper.Server.InvokeDisconnect(wrapper); 
                } 
            } 
        } 

        public static 
void TryReview(ClientWrapper wrapper) 
        { 
            if (
wrapper.Alive) 
            { 
                if (
wrapper.OverrideTiming) 
                { 
                    if (
Time32.Now > wrapper.LastReceive.AddMilliseconds(0x2bf20)) 
                    { 
                        
wrapper.Server.InvokeDisconnect(wrapper); 
                    } 
                } 
                else if ((
Time32.Now < wrapper.LastReceiveCall.AddMilliseconds(0x7d0)) && (Time32.Now > wrapper.LastReceive.AddMilliseconds(0xea60))) 
                { 
                    
wrapper.Server.InvokeDisconnect(wrapper); 
                } 
            } 
        } 

        public static 
void TrySend(ClientWrapper wrapper) 
        { 
            if (
wrapper.isValid()) 
            { 
                
byte[] buffer; 
                while (
wrapper.TryDequeueSend(out buffer)) 
                { 
                    try 
                    { 
                        
wrapper.Socket.Send(buffer); 
                    } 
                    catch 
                    { 
                        
wrapper.Server.InvokeDisconnect(wrapper); 
                    } 
                } 
            } 
        } 

        public 
enum ShutDownFlags 
        
{ 
            
SD_RECEIVE, 
            
SD_SEND, 
            
SD_BOTH 
        
} 
    } 
} 

ودول بملف ServerSocket.cs ,

كود:
namespace Phoenix_Project.Network.Sockets 
{ 
    
using System; 
    
using System.Collections.Concurrent; 
    
using System.Net; 
    
using System.Net.Sockets; 
    
using System.Runtime.InteropServices; 
    
using System.Threading; 
    
using Phoenix_Project; 

    public class 
ServerSocket 
    
{ 
        private 
ConcurrentDictionary<int, int> BruteforceProtection; 
        private 
Socket Connection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
        private 
bool enabled; 
        private 
string ipString; 
        private 
ushort port; 
        public 
bool PrintoutIPs; 
        private 
object SyncRoot = new object(); 
        private 
Thread thread; 
        private const 
int TimeLimit = 0x3a98; 

        public 
event Action<ClientWrapper> OnClientConnect; 

        public 
event Action<ClientWrapper> OnClientDisconnect; 

        public 
event Action<byte[], int, ClientWrapper> OnClientReceive; 

        public 
ServerSocket() 
        { 
            
this.thread = new Thread(new ThreadStart(this.doSyncAccept)); 
            
this.thread.Start(); 
        } 

        public 
void Disable() 
        { 
            
this.enabled = false; 
            
this.Connection.Close(1); 
        } 

        private 
void doSyncAccept() 
        { 
            while (
true) 
            { 
                if (
this.enabled) 
                { 
                    try 
                    { 
                        
this.processSocket(this.Connection.Accept()); 
                    } 
                    catch 
                    { 
                    } 
                } 
                
Thread.Sleep(1); 
            } 
        } 

        public 
void Enable() 
        { 
            if (!
this.enabled) 
            { 
                
this.Connection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
                
this.Connection.Bind(new IPEndPoint(IPAddress.Any, this.port)); 
                
this.Connection.Listen(100); 
                
this.enabled = true; 
            } 
        } 

        public 
void Enable(ushort port) 
        { 
            
this.port = port; 
            
this.Connection.Bind(new IPEndPoint(IPAddress.Any, this.port)); 
            
this.Connection.Listen(100); 
            
this.enabled = true; 
            
this.BruteforceProtection = new ConcurrentDictionary<int, int>(); 
        } 

        public 
void Enable(ushort port, string ip, bool BigSend = false) 
        { 
            
this.ipString = ip; 
            
this.port = port; 
            
this.Connection.Bind(new IPEndPoint(IPAddress.Parse(this.ipString), this.port)); 
            
this.Connection.Listen(0x7fffffff); 
            if (
BigSend) 
            { 
                
this.Connection.ReceiveBufferSize = 0xffff; 
                
this.Connection.SendBufferSize = 0xffff; 
            } 
            
this.enabled = true; 
            
this.BruteforceProtection = new ConcurrentDictionary<int, int>(); 
        } 

        public 
void InvokeDisconnect(ClientWrapper Client) 
        { 
            if (
this.OnClientDisconnect != null) 
            { 
                
this.OnClientDisconnect(Client); 
            } 
        } 

        private 
void processSocket(Socket socket) 
        { 
            try 
            { 
                
string str = (socket.RemoteEndPoint as IPEndPoint).Address.ToString(); 
                
string str2 = (socket.LocalEndPoint as IPEndPoint).Address.ToString(); 
                
int hashCode = str.GetHashCode(); 
                if (!
Program.ALEXPC) 
                { 
                    
int num3; 
                    
int num2 = Time32.Now.GetHashCode(); 
                    if (!
this.BruteforceProtection.TryGetValue(hashCode, out num3)) 
                    { 
                        
this.BruteforceProtection[hashCode] = num2; 
                    } 
                    else 
                    { 
                        if ((
num2 - num3) < 0x3a98) 
                        { 
                            if (
this.PrintoutIPs) 
                            { 
                                
Phoenix_Project.Console.WriteLine("Dropped connection: " + str, ConsoleColor.DarkYellow); 
                            } 
                            
socket.Disconnect(false); 
                            
socket.Close(); 
                            return; 
                        } 
                        
this.BruteforceProtection[hashCode] = num2; 
                        if (
this.PrintoutIPs) 
                        { 
                            
Phoenix_Project.Console.WriteLine("Allowed connection: " + str, ConsoleColor.DarkYellow); 
                        } 
                    } 
                } 
                
ClientWrapper wrapper = new ClientWrapper(); 
                
wrapper.Create(socket, this, this.OnClientReceive); 
                
wrapper.Alive = true; 
                
wrapper.IP = str; 
                
wrapper.LocalIp = str2; 
                if (
this.OnClientConnect != null) 
                { 
                    
this.OnClientConnect(wrapper); 
                } 
            } 
            catch (
Exception exception) 
            { 
                
Phoenix_Project.Console.WriteLine(exception, ConsoleColor.DarkYellow); 
            } 
        } 

        public 
void Reset() 
        { 
            
this.Disable(); 
            
this.Enable(); 
        } 

        public 
void stoptheard() 
        { 
            
this.thread = null; 
        } 

        public 
bool Enabled 
        
{ 
            
get 
            
{ 
                return 
this.enabled; 
            } 
        } 
    } 
} 



قديم 2019-07-08, 06:05 PM
المشاركة 2
youssefabdelmanam
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: سوكت كونكر لتخفيف البنج
جميل بالتوفيق

قديم 2019-07-08, 06:29 PM
المشاركة 3
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: سوكت كونكر لتخفيف البنج
الله ينور يا اداره

قديم 2019-07-10, 03:35 PM
المشاركة 4
MohamedModyAdel
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: سوكت كونكر لتخفيف البنج
تسلم

قديم 2019-08-12, 03:38 PM
المشاركة 5
ElSaher
.:: مشرف اقسام كونكر ::.
  • غير متواجد
افتراضي رد: سوكت كونكر لتخفيف البنج
بيجيلي ايرروات كتير ولما اجي احلها حليت نص الايرور ولسه في ايرورات تنيه كتير بردو


العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: سوكت كونكر لتخفيف البنج
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
سوكت جديد لتخفيف البنج ElSaher تطوير سيرفرات كونكر 1 2020-02-21 08:33 PM
فيه مشكلة في سورس متركس كل لما اعمل التور والفانه سوكت بيختفو Mawdo3jded مشكلات السيرفيرات كونكر الشخصيه 7 2020-01-22 10:38 PM
سوكت سلفر الشخصي لتخفيف البنج ElSaher تطوير سيرفرات كونكر 3 2019-09-10 01:03 PM
بعض اسباب البنج او سحب السورس بيعلي Commander تطوير سيرفرات كونكر 11 2019-08-07 06:56 AM
محتاج سوكت يظبط البنج youssefabdelmanam مشكلات السيرفيرات كونكر الشخصيه 4 2019-07-08 05:05 PM


الساعة الآن 03:12 AM