Salut,

Dans le problème que je vais vous énnoncer, il y a 2 programmes, le programme client et le programme serveur.

J'avais réalisé il y maintenant presque un an, un petit tchat en c++ (DOS)
J'essaye d'adapter le code pour le Visual c++ (Windows)

-Dans le programme serveur*, je fait appel à la fonction "connexion(4444);" (voir ci dessous)
* Aucun socket n'a été ouvert ou utilisé précédement dans cette application.

-Je me connecte sur ce serveur avec le programme client (IP:127.0.0.1) et la fonction "conect()" (fonction chez le client) renvoi "0" donc la connexion a reussi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
int connexion(const int port)
{
   sock = socket(AF_INET, SOCK_STREAM, 0);
   sin.sin_addr.s_addr			= INADDR_ANY;
   sin.sin_family				= AF_INET;
   sin.sin_port				= htons(port);
   bind(sock, (SOCKADDR *)&sin, sizeof(sin));
   listen(sock, 0);
   ioctlsocket(sock, FIONBIO, &argp);
}
: Mes problèmes:

-Pourquoi la connexion a réussi alors qu'aucune fonction "accept()" a été introduite dans le programme serveur : (par contre quant j'enleve la fonction "connexion(4444)" , la le client ne peut pas se connecter.

-Le plus gènant c'est que la communication avec "send()" et "recv()" est impossible. (cela me parait normal vu qu'aucun socket n'a été aloué au client, c'est normalement le rôle de "accept()" )

Merci de bien vouloir m'éclaircir sur ce problème qui me parrait un peu étrange.

PS: J'ai essayé de me connecter sur l'ancien programme serveur (DOS) que j'avais fait et tout fonctione parfaitement il ne s'agit donc pas d'une défaillence du programme client.

EDIT: J'utilise DevC++ (4.9.9.2)