قديم 2019-11-08, 11:57 PM
المشاركة 2
zezonever
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: لو سمحتوا عاوز كونكت سوكت علشان اللي عندي مبوظ السورس
ده ملف ServerSocket.cs اتفضل بتاع سرفري


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

    public 
delegate void NetworkClientConnection(ClientWrapper client);
    public 
delegate void NetworkClientReceive(Byte[] bufferInt32 lengthClientWrapper client);

    public class 
ServerSocket
    
{
        public 
Socket Socket get; private set; }
        public 
IPEndPoint LocalEndPoint get; private set; }
        public 
String Name get; private set; }

        public 
NetworkClientConnection OnConnect;
        public 
NetworkClientReceive OnReceive;
        public 
NetworkClientConnection OnDisconnect;
        public 
BruteForceAttackProtection AttackProtector;

        public 
Int32 ClientBufferSize;

        public 
ServerSocket(String nameUInt32 maximumUInt32 banTime)
        {
            
Name name;
            
AttackProtector = new BruteForceAttackProtection(maximumbanTime);
        }

        public 
void Prepare(int portIPProtectionLevel protectionLevel)
        {
            
LocalEndPoint = new IPEndPoint(IPAddress.Anyport);
            
Socket = new Socket(AddressFamily.InterNetworkSocketType.StreamProtocolType.Tcp);
            
Socket.Bind(LocalEndPoint);
            
Socket.SetIPProtectionLevel(protectionLevel);
            
Socket.NoDelay true;
            
Socket.Listen((int)SocketOptionName.MaxConnections);
        }

        public 
void BeginAccept()
        {
            
Socket.SetSocketOption(SocketOptionLevel.SocketSocketOptionName.KeepAlivefalse);
            
Socket.SetSocketOption(SocketOptionLevel.SocketSocketOptionName.DontLingertrue);
            
Socket.BeginAccept(Acceptnull);
        }

        private 
void Accept(IAsyncResult result)
        {
            
Socket clientSocket;

            try
            {
                
clientSocket Socket.EndAccept(result);
            }
            catch (
SocketException)
            {
                
BeginAccept();
                return;
            }

            if (
AttackProtector.Authenticate(clientSocket))
            {
                
clientSocket.ReceiveBufferSize ClientBufferSize;
                var 
client = new ClientWrapper(thisclientSocketClientBufferSize);
                
InvokeOnConnect(client);
                
client.BeginReceive();
            }
            else
                
clientSocket.Disconnect(false);
            
BeginAccept();
        }

        public 
void InvokeOnConnect(ClientWrapper client)
        {
            if (
OnConnect != nullOnConnect(client);
        }

        public 
void InvokeOnReceive(Byte[] bufferInt32 lengthClientWrapper client)
        {
            if (
OnReceive != nullOnReceive(bufferlengthclient);
        }

        public 
void InvokeOnDisconnect(ClientWrapper client)
        {
            if (!
client.IsAlive) return;

            if (
OnDisconnect != nullOnDisconnect(client);
        }
    }




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



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

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

المواضيع المتشابهه للموضوع: لو سمحتوا عاوز كونكت سوكت علشان اللي عندي مبوظ السورس
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
عايز اضيف شفره مهمه في السورس علشان موجوده Tyranny-Team's مشكلات السيرفيرات كونكر الشخصيه 3 2020-03-28 01:13 PM
مشكلة في السورس اللي نزلوا MR Online stevenayman1 مشكلات السيرفيرات كونكر الشخصيه 7 2020-03-20 04:00 AM
عندى مشاكل فى السورس للى معايا nova الطلبات المدفوعه 1 2019-12-04 04:09 PM
اعدل علي الضربه اللي بتطلع، استريك ازاي الناس عندي بتضرب بوكس استريك بي 55 الف سمير مشكلات السيرفيرات كونكر الشخصيه 1 2019-11-08 05:36 PM
لو سمحتوا عاوز اعمل شكل التون كدا سمير مشكلات السيرفيرات كونكر الشخصيه 2 2019-10-05 04:20 PM


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

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