Skip to content

Commit

Permalink
- Ajout message brute
Browse files Browse the repository at this point in the history
- Augmentation de la taille max des messages
  • Loading branch information
zonetecde committed Nov 21, 2022
1 parent acdcb01 commit 4bc9b39
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 35 deletions.
3 changes: 2 additions & 1 deletion ClassLibrary/ClassLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ public enum MESSAGE_TYPE
MESSAGE,
CONNECTION,
DISCONNECTION,
DONNER_ID
DONNER_ID,
MESSAGE_BRUTE
}
}
}
Binary file added setup/Zoneck Server Setup.exe
Binary file not shown.
37 changes: 26 additions & 11 deletions zck_client/ZoneckClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ public ZoneckClient(string appName, string ip, int port, Action<Message> Receive
/// Envois un message au serveur
/// </summary>
/// <param name="str">Le message à envoyer</param>
public void Send(string str, string toId = "")
public void Send(string str, string toId = "", bool brute = false)
{
// id > message
string msg = JsonConvert.SerializeObject(new Message(MyId, str, MESSAGE_TYPE.MESSAGE, toId)) + "\r\n";
string msg = brute ? "@[B]" + str + "\r\n" : JsonConvert.SerializeObject(new Message(MyId, str, MESSAGE_TYPE.MESSAGE, toId)) + "\r\n";
//Receive(new Message(ConnetionId, str, AppName, MESSAGE_TYPE.MESSAGE));

var buffter = Encoding.UTF8.GetBytes(msg);
Expand All @@ -60,20 +60,35 @@ private void _Receive()
{
// Recupère le message reçu
byte[] buffer = new byte[1024 * 1024 * 2];
var effective = SocketClient.Receive(buffer);

var message = Encoding.UTF8.GetString(buffer, 0, effective);

if (!String.IsNullOrEmpty(message))
try
{
Message received_message = JsonConvert.DeserializeObject<Message>(message);
var effective = SocketClient.Receive(buffer);

var message = Encoding.UTF8.GetString(buffer, 0, effective);

if (!String.IsNullOrEmpty(message))
{
if (!message.Contains("@[B]"))
{
Message received_message = JsonConvert.DeserializeObject<Message>(message);

// pour id
if (received_message.MessageType == MESSAGE_TYPE.DONNER_ID)
MyId = received_message.Content;

// pour id
if (received_message.MessageType == MESSAGE_TYPE.DONNER_ID)
MyId = received_message.Content;
Receive(received_message);
}
else
{
Receive(new Message(String.Empty, message.Remove(0, 4), MESSAGE_TYPE.MESSAGE_BRUTE));
}

Receive(received_message);
}
}
catch
{ }

}
}
}
Expand Down
59 changes: 36 additions & 23 deletions zck_server/ZoneckServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ public ZoneckServer(string IP = "127.0.0.1", int Port = 30000)
Name = "serveur",
TextEncoding = "UTF-8",
Ip = IP,
MaxRequestLength = int.MaxValue,

};

// essaye de setup le serveur
Expand Down Expand Up @@ -145,43 +147,54 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
{
// récupère le message
string message_brute = (requestInfo.Key + " " + requestInfo.Body).Replace("\r\n", string.Empty);
Message received_message = JsonConvert.DeserializeObject<Message>(message_brute);
if (!message_brute.Contains("@[B]"))
{

// debug log
if (enableDebug)
Console.WriteLine(DateTime.Now.ToString() + " - " + received_message.Id + " pour " + received_message.ToId == string.Empty ? "tout le monde" : received_message.ToId + " > " + received_message.Content);
Message received_message = JsonConvert.DeserializeObject<Message>(message_brute);

// debug log
if (enableDebug)
Console.WriteLine(DateTime.Now.ToString() + " - " + received_message.Id + " pour " + received_message.ToId == string.Empty ? "tout le monde" : received_message.ToId + " > " + received_message.Content);

// si c'est pour tout le monde ou pour une personne en particulier
if (String.IsNullOrEmpty(received_message.ToId))
{
foreach (var u in Server.GetAllSessions().ToList())

// si c'est pour tout le monde ou pour une personne en particulier
if (String.IsNullOrEmpty(received_message.ToId))
{
if (u.SessionID != clientSession.SessionID)
foreach (var u in Server.GetAllSessions().ToList())
{
if (received_message.ToId == string.Empty || received_message.ToId == u.SessionID) // gère l'envois de tt le monde ou private message
if (u.SessionID != clientSession.SessionID)
{
u.Send(message_brute);
if (received_message.ToId == string.Empty || received_message.ToId == u.SessionID) // gère l'envois de tt le monde ou private message
{
u.Send(message_brute);

if (enableDebug)
Console.WriteLine("Envois d'un message de " + clientSession.SessionID + " à " + u.SessionID + " : " + message_brute);
if (enableDebug)
Console.WriteLine("Envois d'un message de " + clientSession.SessionID + " à " + u.SessionID + " : " + message_brute);
}
}
}
}
}
else
{
if (Server.GetSessionByID(received_message.ToId).TrySend(message_brute))
{
if(enableDebug)
Console.WriteLine("[MESSAGE PRIVE] de " + received_message.Id + " à " + received_message.ToId);
}
else
{
if (enableDebug)
Console.WriteLine("pas envoyé, erreur!");
if (Server.GetSessionByID(received_message.ToId).TrySend(message_brute))
{
if (enableDebug)
Console.WriteLine("[MESSAGE PRIVE] de " + received_message.Id + " à " + received_message.ToId);
}
else
{
if (enableDebug)
Console.WriteLine("pas envoyé, erreur!");
}
}
}
else
{
// message brute
if (enableDebug)
Console.WriteLine("[MESSAGE PRIVE BRUTE]");
Server.GetAllSessions().ToList().FirstOrDefault(x => x.SessionID == message_brute.Split(',').Last().Trim()).Send(message_brute);
}

}
}
Expand Down

0 comments on commit 4bc9b39

Please sign in to comment.