示例#1
0
文件: client.cs 项目: Speed13/Winda
        private void ReadCallbackStatic(IAsyncResult ar)
        {
            try
            {
                if (client.EndReceive(ar) > 0)
                {
                    int packetLength = BitConverter.ToInt32(buffer, 0);
                    buffer = new byte[packetLength];

                    int recv = 0;

                    if (buffer.Length > 0)
                    {
                        while (recv < packetLength)
                        {
                            recv = recv + client.Receive(buffer, recv, buffer.Length - recv, SocketFlags.Partial);
                        }

                        Type pck = packetProcessor.processPacket(buffer);
                        Trafic.ChangeTrafic(Trafic.TraficType.Received, buffer.Length);
                        if (pck != null)
                        {
                            R_Packet rbp = (R_Packet)Activator.CreateInstance(pck, this, buffer);
                            rbp.Run();
                        }
                        else
                        {
                            Disconnect();
                            return;
                        }

                        Read();

                        return;
                    }
                    else
                    {
                        Disconnect();
                        return;
                    }
                }
                else
                {
                    Disconnect();
                    return;
                }
            }
            catch (Exception ex)
            {
                if (!client.Connected)
                {
                    Disconnect();
                }
                return;
            }
        }
示例#2
0
 /// <summary>
 /// Constructeur d'un Trajet.
 /// </summary>
 /// <param name="date">Date du trajet</param>
 /// <param name="depart">Lieu de départ du trajet</param>
 /// <param name="arrivee">Lieu d'arrivée du trajet</param>
 /// <param name="duree">Durée du trajet</param>
 /// <param name="km">Nombre de kilomètres parcourus durant le trajet</param>
 /// <param name="voiture">Voiture utilisée lors du trajet</param>
 /// <param name="meteo">Météo durant le trajet</param>
 /// <param name="trafic">Trafic sur la route durant le trajet</param>
 /// <param name="remarque">Remarques à ajouter sur le trajet (ex : Accident sur la route)</param>
 public Trajet(DateTime date, string depart, string arrivee, TimeSpan duree, int km, Voiture voiture, Meteo meteo, Trafic trafic, string remarque)
 {
     Date     = date;
     Depart   = depart;
     Arrivee  = arrivee;
     Duree    = duree;
     Km       = km;
     Voiture  = voiture;
     Meteo    = meteo;
     Trafic   = trafic;
     Remarque = remarque;
 }
示例#3
0
文件: client.cs 项目: Speed13/Winda
 public void SendPacket(S_Packet packet)
 {
     try
     {
         packet.Write();
         byte[]      buffer = packet.ToByteArray();
         byte        ID     = buffer[0];
         List <byte> Packet = new List <byte>();
         Packet.AddRange(BitConverter.GetBytes((int)(buffer.Length)));
         Packet.AddRange(buffer);
         client.Send(Packet.ToArray());
         Trafic.ChangeTrafic(Trafic.TraficType.Sent, Packet.Count);
     }
     catch
     {
     }
 }