A
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:
Et même quand j'utilise un thread de réception client au lieu du Client.Sock = MainForm.serverGame.AcceptSocket();
ça ne fonctionne pas
Voila, en espérant que quelqu'un me vienne en aide car je ne sais plus quoi faire D:
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:
Code:
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
Code:
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: