قديم 2020-04-19, 08:01 PM
المشاركة 2
ElSaher
.:: مشرف قسم المشاكل ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
انا منزل 3في قسم التطوير

قديم 2020-04-20, 03:21 AM
المشاركة 3
ElSaher
.:: مشرف قسم المشاكل ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
اتفضل يا حوب

ClientWrapper

كود:

namespace XMeGo.Network.Sockets
{
    
using System;
    
using System.Collections.Generic;
    
using System.Net.Sockets;
    
using System.Runtime.InteropServices;
    
using System.Threading;
    
using XMeGo;

    public class 
ClientWrapper
    
{
        public 
bool IsAlive;
        public 
byte[] Buffer;
        public 
int BufferSize;
        public 
Action<byte[], intClientWrapperCallback;
        public 
object Owner;
        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.UnicodeSetLastError true)]
        public static 
extern int closesocket(IntPtr s);
        public 
void Create(System.Net.Sockets.Socket socketServerSocket serverAction<byte[], intClientWrappercallBack)
        {
            
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.ConnectionReviewthisWorld.GenericThreadPool), World.Subscribe<ClientWrapper>(Program.World.ConnectionReceivethisWorld.ReceivePool), World.Subscribe<ClientWrapper>(Program.World.ConnectionSendthisWorld.SendPool) };
        }

        public 
void Disconnect()
        {
            
lock (this.Socket)
            {
                
int num 0x3e8;
                while (((
this.SendQueue.Count 0) && this.IsAlive) && (num-- > 0))
                {
                    
Thread.Sleep(1);
                }
                if (
this.IsAlive)
                {
                    
this.IsAlive false;
                    for (
int i 0this.TimerSubscriptions.Lengthi++)
                    {
                        
this.TimerSubscriptions[i].Dispose();
                    }
                    
shutdown(this.Socket.HandleShutDownFlags.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.BufferavailableSocketFlags.None);
                if (
num != 0)
                {
                    if (
this.Callback != null)
                    {
                        
this.Callback(this.Buffernumthis);
                    }
                }
                else
                {
                    
this.Server.InvokeDisconnect(this);
                }
            }
            catch (
SocketException)
            {
                
this.Server.InvokeDisconnect(this);
            }
            catch (
Exception exception)
            {
                
XMeGo.Console.WriteLine(exceptionConsoleColor.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.IsAlive || (this.TimerSubscriptions == null))
            {
                return 
true;
            }
            for (
int i 0this.TimerSubscriptions.Lengthi++)
            {
                
this.TimerSubscriptions[i].Dispose();
            }
            return 
false;
        }

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

        [
DllImport("ws2_32.dll"CharSet CharSet.UnicodeSetLastError true)]
        public static 
extern int shutdown(IntPtr sShutDownFlags 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(0SelectMode.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.IsAlive)
            {
                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

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

    public class 
ServerSocket
    
{
        private 
ConcurrentDictionary<intintBruteforceProtection;
        private 
Socket Connection = new Socket(AddressFamily.InterNetworkSocketType.StreamProtocolType.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<ClientWrapperOnClientConnect;

        public 
event Action<ClientWrapperOnClientDisconnect;

        public 
event Action<byte[], intClientWrapperOnClientReceive;

        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.InterNetworkSocketType.StreamProtocolType.Tcp);
                
this.Connection.Bind(new IPEndPoint(IPAddress.Anythis.port));
                
this.Connection.Listen(100);
                
this.enabled true;
            }
        }

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

        public 
void Enable(ushort portstring ipbool 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<intint>();
        }

        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(hashCodeout num3))
                    {
                        
this.BruteforceProtection[hashCode] = num2;
                    }
                    else
                    {
                        if ((
num2 num3) < 0x3a98)
                        {
                            if (
this.PrintoutIPs)
                            {
                                
XMeGo.Console.WriteLine("Dropped connection: " strConsoleColor.DarkYellow);
                            }
                            
socket.Disconnect(false);
                            
socket.Close();
                            return;
                        }
                        
this.BruteforceProtection[hashCode] = num2;
                        if (
this.PrintoutIPs)
                        {
                            
XMeGo.Console.WriteLine("Allowed connection: " strConsoleColor.DarkYellow);
                        }
                    }
                }
                
ClientWrapper wrapper = new ClientWrapper();
                
wrapper.Create(socketthisthis.OnClientReceive);
                
wrapper.IsAlive true;
                
wrapper.IP str;
                
wrapper.LocalIp str2;
                if (
this.OnClientConnect != null)
                {
                    
this.OnClientConnect(wrapper);
                }
            }
            catch (
Exception exception)
            {
                
XMeGo.Console.WriteLine(exceptionConsoleColor.DarkYellow);
            }
        }

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

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

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


السوكت دا الي انا عاملو

قديم 2020-04-20, 12:34 PM
المشاركة 4
KERO
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
اللاج و عدد العبين مش مترتبين على السوكت بس ده السوكت جزء بسيط الى هو الاتصال انما في حاجات كثيره في السورس زي الاتشكات و الاكواد الغلط و و السيستمات البايظه و جزء الكمبيوتر الى هو الفي بي اس بيعتمد برضه على الرام و البروسيسر و سرعة الاتصال بالانترنت و المنطقه الى هو فيها عشان البنج كل ما يكون قريب من مصل افي فرنسا يديك بنج افضل MS ping بيكون قليل وكمان لم تجيب في بي اس تشوف نوع الهارد لازم يكون SSD عشان بيبقي اسرع من HD يعني الفكره كلها مش معناها سوكت بس

قديم 2020-04-20, 12:53 PM
المشاركة 5
Mr3bdallahPro
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا

كود:
ServerSocket AccountServer = new ServerSocket("AccountServer"6050)
                {
                    
OnConnect AuthServer_OnClientConnect,
                    
OnReceive AuthServer_OnClientReceive,
                    
OnDisconnect AuthServer_OnClientDisconnect,
                    
ClientBufferSize 4048
                
};
                
AccountServer.Prepare(AuthPortSystem.Net.Sockets.IPProtectionLevel.EdgeRestricted);
                
AccountServer.BeginAccept();


                {
                    
ServerSocket MessageServer = new ServerSocket("MessageServer"6050)
                    {
                        
OnConnect GameServer_OnClientConnect,
                        
OnReceive GameServer_OnClientReceive,
                        
OnDisconnect GameServer_OnClientDisconnect,
                        
ClientBufferSize 4048
                    
};
                    
MessageServer.Prepare(GamePortSystem.Net.Sockets.IPProtectionLevel.EdgeRestricted);
                    
MessageServer.BeginAccept(); 

دول بيجيبو ايرور

قديم 2020-04-20, 12:55 PM
المشاركة 6
ElSaher
.:: مشرف قسم المشاكل ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
كدا يبقي نوع السورس بتاعك مش متقبل نوع السوكت هبقي انزل نوع تاني منو بليل لحل المشكلة دي انشاء الله

قديم 2020-04-20, 12:55 PM
المشاركة 7
KERO
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
كود:
serversocket accountserver = new serversocket("accountserver"6050)
                {
                    
onconnect authserver_onclientconnect,
                    
onreceive authserver_onclientreceive,
                    
ondisconnect authserver_onclientdisconnect,
                    
clientbuffersize 4048
                
};
                
accountserver.prepare(authportsystem.net.sockets.ipprotectionlevel.edgerestricted);
                
accountserver.beginaccept();


                {
                    
serversocket messageserver = new serversocket("messageserver"6050)
                    {
                        
onconnect gameserver_onclientconnect,
                        
onreceive gameserver_onclientreceive,
                        
ondisconnect gameserver_onclientdisconnect,
                        
clientbuffersize 4048
                    
};
                    
messageserver.prepare(gameportsystem.net.sockets.ipprotectionlevel.edgerestricted);
                    
messageserver.beginaccept(); 

دول بيجيبو ايرور
ده ربط الاكونت سيرفر بالجيم سرفر

قديم 2020-04-20, 12:56 PM
المشاركة 8
Mr3bdallahPro
.:: عضو نشيط ::.
  • غير متواجد
Like رد: مطلوب سوكت نضيف يا جماعه سورس باندا
كدا يبقي نوع السورس بتاعك مش متقبل نوع السوكت هبقي انزل نوع تاني منو بليل لحل المشكلة دي انشاء الله
بس بسرعه بقا

قديم 2020-04-20, 01:09 PM
المشاركة 9
ElSaher
.:: مشرف قسم المشاكل ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
ده ربط الاكونت سيرفر بالجيم سرفر
انا عارف يا حوب وا الحل هنزلو بليل

قديم 2020-04-20, 09:39 PM
المشاركة 10
Users
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: مطلوب سوكت نضيف يا جماعه سورس باندا
اللاج و عدد العبين مش مترتبين على السوكت بس ده السوكت جزء بسيط الى هو الاتصال انما في حاجات كثيره في السورس زي الاتشكات و الاكواد الغلط و و السيستمات البايظه و جزء الكمبيوتر الى هو الفي بي اس بيعتمد برضه على الرام و البروسيسر و سرعة الاتصال بالانترنت و المنطقه الى هو فيها عشان البنج كل ما يكون قريب من مصل افي فرنسا يديك بنج افضل MS ping بيكون قليل وكمان لم تجيب في بي اس تشوف نوع الهارد لازم يكون SSD عشان بيبقي اسرع من HD يعني الفكره كلها مش معناها سوكت بس
احسنت التعليق..


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



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

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

المواضيع المتشابهه للموضوع: مطلوب سوكت نضيف يا جماعه سورس باندا
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مطلوب حل ضروري يال جماعه علاشان عاوز اظبط الاوتوا باتش MahmoudMano مشكلات السيرفيرات كونكر الشخصيه 8 2020-05-01 01:47 AM
مطلوب سورس اليكس يا رجاله نضيف ويكون اوبن مفهوش ثغرات بس مش اكتر MahmoudMano مشكلات السيرفيرات كونكر الشخصيه 1 2020-04-05 03:38 AM
مطلوب سورس اليكس بدون ثغرات لو سمحتم يا جماعه MahmoudMano مشكلات السيرفيرات كونكر الشخصيه 1 2020-04-04 07:43 AM
راجل مظبوط من بتوع زمان دول الى معروفة يعنى عايز اشترى سورس نضيف 3d Zayn Muhammed الطلبات المدفوعه 5 2020-03-17 07:50 AM
مشكله في سورس باندا سمير مشكلات السيرفيرات كونكر الشخصيه 1 2019-10-22 07:17 PM


الساعة الآن 01:46 PM

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.