コード例 #1
0
ファイル: AsyncSocket.cs プロジェクト: halo779/EoEmu
 public void Disconnect(AsyncWrapper obj)
 {
     if (obj != null)
         try
         {
             if (obj.IncomingSocket != null)
             {
                 obj.IncomingSocket.Shutdown(System.Net.Sockets.SocketShutdown.Both);
                 obj.IncomingSocket.Close();
             }
             obj.IncomingSocket = null;
             if (obj.Client != null)
                 ClientDisconnect(obj);
         }
         catch (ObjectDisposedException e) { Console.WriteLine(e); }
     obj = null;
 }
コード例 #2
0
ファイル: AsyncSocket.cs プロジェクト: halo779/EoEmu
 public void Connect(IAsyncResult result)
 {
     if (AcceptConnections)
     {
         AsyncWrapper obj = new AsyncWrapper(_port);
         try
         {
             obj.IncomingSocket = pConnection.EndAccept(result);
             if (obj.IncomingSocket == null)
             {
                 obj = null;
                 pConnection.BeginAccept(new AsyncCallback(Connect), null);
                 return;
             }
             ClientConnect.Invoke(obj);
             obj.IncomingSocket.BeginReceive(obj.Data, 0, 8192, SocketFlags.None, Receive, obj);
         }
         catch (Exception e) { obj = null; Console.WriteLine(e); }
         pConnection.BeginAccept(new AsyncCallback(Connect), null);
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: halo779/EoEmu
 private static void gameServer_ClientConnect(AsyncWrapper obj)
 {
     obj.Client = new World.Client(obj.IncomingSocket, obj.Port);
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: halo779/EoEmu
 private static void accountServer_ClientReceive(AsyncWrapper obj, byte[] data)
 {
     if (Functions.PacketSniffing.Sniffing)
         Functions.PacketSniffing.Sniff(data, false);
     Connections.PacketHandler.HandleAuthentication(obj, data);
     obj.OutgoingSocket.Send(data);
 }
コード例 #5
0
ファイル: Program.cs プロジェクト: halo779/EoEmu
 private static void accountServer_ClientConnect(AsyncWrapper obj)
 {
     Console.WriteLine("Client Connected");
     obj.StartSending();
 }
コード例 #6
0
ファイル: Program.cs プロジェクト: halo779/EoEmu
 private static void gameServer_ClientReceive(AsyncWrapper obj, byte[] buffer)
 {
     World.Client client = obj.Client as World.Client;
     client.Continue = true;
     Again:
         if (client.Continue)
         {
             Connections.PacketHandler.HandleBuffer(client, buffer, true);
         }
         else
             goto Again;
 }