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; } }
/// <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; }
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 { } }