Bonjour !
Je voulais juste partager avec vous mon enthousiasme d'avoir créer mon premier système de paquet, même si c'est très peux, c'est déjà un pas de plus sur la création de bots !
Merci à Cadernis et notament à @Valwex , @DrBrook , et @BlueDream qui m'ont aidé et documenté ;)
J'ai commenter mon petit code et j'aimerais savoir si mes commentaires sont correcte (histoire de bien comprendre mon code si j'ai mal compris un truc)
Le serveur :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Server
{
internal class Program
{
private static void Main(string[] args)
{
// Définition des paramètres principaux de la console.
Console.Title = "Serveur";
int serverPort = 8000;
IPHostEntry serverHost = Dns.Resolve(Dns.GetHostName());
IPAddress serverIP = serverHost.AddressList[0];
// Création d'un EndPoint ou le client et le serveur vont communiquer.
IPEndPoint iep = new IPEndPoint(serverIP, serverPort);
Console.WriteLine("Serveur correctement démarré! ({0}) ({1})", serverIP.ToString(), serverPort.ToString());
// Création d'un socket de base & association à notre EndPoint.
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);
socket.Listen(0);
// Création d'un nouveau socket qui vas communiquer à partir de l'ancien.
Socket sockAccept = socket.Accept();
// Création d'un message binaire que sockAccept vas pouvoir envoyer.
byte[] buffer = Encoding.Default.GetBytes("Connecté au serveur avec succès!\n");
sockAccept.Send(buffer, 0, buffer.Length, 0);
// Redéfinition de notre message binaire pour pouvoir recevoir le message du client.
buffer = new byte[255];
// Réception.
int rec = sockAccept.Receive(buffer);
// Comme on à reçus notre message sur 255 on vas devoir formatter le message & l'afficher.
Array.Resize(ref buffer, rec);
Console.WriteLine("Client << " + Encoding.Default.GetString(buffer));
// Et on ferme tout ça.
socket.Close();
sockAccept.Close();
Console.ReadKey();
}
}
}
Le Client :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Client
{
internal class Program
{
private static void Main(string[] args)
{
// Définition des paramètre de communication
Console.Title = "Client";
Console.WriteLine("Veuillez entrer l'IP du serveur : ");
string serverIP = Console.ReadLine();
Console.WriteLine("Veuillez entrer le port du serveur : ");
string serverPort = Console.ReadLine();
// Création d'un socket, Endpoint et connexion du socket > EndPoint.
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(serverIP), Int32.Parse(serverPort));
socket.Connect(iep);
// Définition du message à envoyer, formatage binaire, envoie.
Console.Write("Client >> ");
string msg = Console.ReadLine();
byte[] msgBuffer = Encoding.Default.GetBytes(msg);
socket.Send(msgBuffer, 0, msgBuffer.Length, 0);
// Redéfinition de notre buffer, réception du socket, formatage, affichage.
byte[] buffer = new byte[255];
int rec = socket.Receive(buffer, 0, buffer.Length, 0);
Array.Resize(ref buffer, rec);
Console.WriteLine("Serveur << " + Encoding.Default.GetString(buffer));
// On ferme tout ça.
socket.Close();
Console.ReadKey();
}
}
}
Merci ! ^_^