Bonjour aux Cadernissiennes et Cadernissiens :)
Ca fait longtemps que je travaille sur mon bot même si je n'y passe que très peu de temps.
Mais voila malgré tous mes efforts je ne comprends toujours pas ce qui cloche :?
Pour la réception et l'envoi de packet client/serveur tout se passe bien jusqu'au packet 42
La question a due être mainte et mainte fois mais là je sèche ...
Donc quand le client doit se connecter au serveur de jeu il se bloque en esseyant de se co mais n'y parvient pas.
Pourtant ma connexion client est fermée et mon serveur game opérationnel.
Packet 42:
Cliquez pour révéler
Cliquez pour masquer
if (e.ProtocolId == 42) //SelectedServerDataMessage
{
SelectedServerDataMessage message = new SelectedServerDataMessage(e.packet);
string address = message.address;
int port = (int)message.port;
message.address = "127.0.0.1";
message.port = 5556;
message.Pack(this.Client);
Client.Stop();
Client = new Connection(MainForm.serverGame.AcceptSocket(), ConnectionType.Client);
Client.Sock = MainForm.serverGame.AcceptSocket();
Client.Start();
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(address, port);
Server.Sock = socket;
}
Et même quand j'utilise un thread de réception client au lieu du Client.Sock = MainForm.serverGame.AcceptSocket();
ça ne fonctionne pas
Cliquez pour révéler
Cliquez pour masquer
private void WaitingGame()
{
//s'il y a un nouveau client on l'accepte
serverGame.BeginAcceptSocket(new AsyncCallback(this.AcceptGame), null);
}
private void AcceptGame(IAsyncResult iar)
{
if (this.InvokeRequired) //pour éviter les problèmes d'inter-threading
{
this.Invoke(new _Accept(this.AcceptGame), new object[] { iar });
}
else
{
this.console.couleur = Color.Green;
this.console.Log("Nouvelle connexion GAME !!");
ClientForm client = new ClientForm(new Connection(serverGame.EndAcceptSocket(iar), ConnectionType.Client), Loader.LoadedPlugins); //on crée la ClientForm avec le DofusClient comportant la socket acceptée
client.MdiParent = this;
client.Show();
serverGame.BeginAcceptSocket(new AsyncCallback(this.AcceptGame), null); //on recommence à accepter des clients
}
}
Voila, en espérant que quelqu'un me vienne en aide car je ne sais plus quoi faire D: