Bonjour, j'utilise ma librairie mis a dispostion , D2com.dll mais j'ai des petites souci d'utilisation et de formatage des données.
Le principe est simple (je pars du principe ou tout fonctionne du premier coup!!), je me connecte ou serveur d'authentification sur le port 5555 et je reçois 2 paquets vide d’identification 1 et 3 (je sais pas a quoi il correspond). bref j'envoie un autre paquets avec un id au pif et une valeur au pif mais pas moyen de ré affiché le paquet que j'ai envoyé!!! Convert.ToString(writer.Bytes).
apres je peux me tromper mais la je suis un peu perdu... d'autant plus que la connexion et coupé apres l'envoie de 3 requets , a mon avis c normal , j'envoie n'importe quoi ><!
pour appli , il y a un bouton pour ce connecter au serveur, une textebox pour rentré un id, une autre textebox pour la valeur , et un bouton pour envoyer le paquet associé à l'id et la valeur.
voici mon code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using D2Com;
using D2Com.Network;
using System.Net.Sockets;
using D2Com.IO;
namespace Projet_Dofus_sockets
{
public partial class CInterface : Form
{
private D2Connection ServerConnection = new D2Connection();
private DataWriter writer;
private DataReader reader;
public CInterface()
{
InitializeComponent();
this.ServerConnection.PacketReceived += new EventHandler<PacketDataEventArgs>(ServerConnection_PacketReceived);
this.ServerConnection.PacketSend += new EventHandler<PacketDataEventArgs>(ServerConnection_PacketSend);
reader = new DataReader();
writer = new DataWriter();
}
private void ServerConnection_PacketReceived(object sender, PacketDataEventArgs e)
{
byte[] byteTabRead = new byte[e.Content.Length];
// Action à faire lorsqu'un paquet est reçu
// Ajouter une ligne au log par exemple...
// e.ProtocolID => ID du paquet
// e.Content => Tableau d'octets du contenu du paquet
// e.WholePacket => Tableau d'octets du contenu du paquet avec le header compris (id, taille de la taille, taille et contenu)
// Cela permet parfois de déboguer vos paquets
reader.Content = byteTabRead;
labelResult.Text = labelResult.Text + "\n[Reçu] ID = " + e.ProtocolID + "| Taille = " + e.Content.Length + "\n [PAQUETS]" + reader.ReadString();
}
private void ServerConnection_PacketSend(object sender, PacketDataEventArgs e)
{
byte[] byteTabRead = new byte[e.Content.Length];
// Action à faire lorsqu'un paquet est envoyé au serveur
// Ajouter une ligne au log par exemple...
// e.ProtocolID => ID du paquet
// e.Content => Tableau d'octets du contenu du paquet
// e.WholePacket => Tableau d'octets du contenu du paquet avec le header compris (id, taille de la taille, taille et contenu)
// Cela permet parfois de déboguer vos paquets
reader.Content = writer.Bytes;
labelResult.Text = labelResult.Text + "\n[Envoyé] ID = " + e.ProtocolID + "| Taille = " + e.Content.Length + "\n [PAQUETS]" + Convert.ToString(writer.Bytes);
}
private void buttonConnec_Click(object sender, EventArgs e)
{
this.ServerConnection.DispatchMethod = this.Invoke;
// On crée une socket pour se connecter au serveur d'authentification du jeu et on la donne à D2Connect.
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
//213.248.126.155",443 reeky errel
socket.Connect("213.248.126.180", 5555);
this.ServerConnection.Socket = socket;
}
catch
{
MessageBox.Show("Echec");
}
//connection serveur
ServerConnection.Start();
}
private void CInterface_FormClosing(object sender, FormClosingEventArgs e)
{
//deconnection
ServerConnection.Stop();
}
private void buttonSend_Click(object sender, EventArgs e)
{
writer.ProtocolID = Convert.ToInt32(textBoxid.Text);
writer.Write((short)Convert.ToInt32(textdonnee.Text));
ServerConnection.Send(writer.ProtocolID, writer);
}
}
}
Voila je vous remerci de porter attention à mon message.