Probleme dans le serveur peut etre le client -fonction accept-

Fermé
jawadbatata Messages postés 1 Date d'inscription vendredi 23 janvier 2015 Statut Membre Dernière intervention 23 janvier 2015 - Modifié par Whismeril le 23/01/2015 à 20:16
Bonjour,




c++

je ne sais pas ou est le probleme exatement
j'ai une probleme dans mon program (server)
lors j'ai cliqué sur mon progmram , il s'aficha sur mon page d'ecran il attende des connexion sur le port 84 (listenig for incomming connesxion), or j'ai cliqué sur le client il me dit<je suis connecté avec le server mais le server ne me dit rien , il doit me dit un lient a été accepté , voila la source code de mes programs et les deux programs.

http://www.gulfup.com/?K5zRZX

code de client
#include <iostream>
#include <stdio.h>
#include <winsock2.h>

using namespace std;

SOCKET StartServer (unsigned short port);
void EndServer (SOCKET socket);

int main()
{

WSAData WsaInfo;
int ws;

ws = WSAStartup(MAKEWORD(2,2),&WsaInfo);

if (ws==0)
{
    cout<<"winsock startup succuss..\n";
}
else
{
    cout<<"winsock startup failure\n";
}

SOCKET sock;
sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if (sock==INVALID_SOCKET)
{
    cout<<"Error socket startup\n";
}
else
{
    cout<<"Socket startup succuss..\n\n";
}

struct sockaddr_in serverInfo;
serverInfo.sin_family = AF_INET;
serverInfo.sin_port = htons(84);
serverInfo.sin_addr.s_addr = inet_addr("127.0.0.1");


int bnd;

bnd = bind(sock,(sockaddr*)&serverInfo,sizeof(serverInfo));

if (bnd==SOCKET_ERROR)

{
    cout<<"error on bind\n";
}
else
{
    cout<<"succuss, socket and struct are linked\n";
}

int cnct;

cnct = connect(sock,(sockaddr*)&serverInfo,sizeof(serverInfo));


if (cnct==SOCKET_ERROR)

{
    cout<<"error to connect\n";
}
else
{
    cout<<"you are connected with the server\n";
}

std::cin.get();

closesocket(sock);
cout<<"socket closed\n";
WSACleanup();
cout<<"winscok closed";


return 0;

}




---------------------------------------------------------------------
code de server
#include <iostream>
#include <winsock2.h>
#include <stdio.h>



//N.B : the last function (accept) can't showed if client don't connected with the server


using namespace std;

SOCKET StartServer(unsigned short port);
void EndServer (SOCKET socket);



int main()
{

int ws;

WSAData WsaInfo;

ws = WSAStartup(MAKEWORD(2,2),&WsaInfo);
if (ws==0)
{
    cout<<"Winsock startup succuss..\n";
}
else
{
    cout<<"Winsock startup error\n";
}

SOCKET sock;

sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if (sock==INVALID_SOCKET)
{
    cout<<"Error socket startup\n";
}
else
{
    cout<<"Socket startup succuss..\n\n";
}

struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(84);
server.sin_addr.s_addr = INADDR_ANY;

int bnd;
bnd = bind (sock,(sockaddr*)&server,sizeof(server));

if (bnd==SOCKET_ERROR)
    {
        cout<<"Error for link socket whit struct.\n";
    }
else
    {
        cout<<"Succusss server on bind...\n";
    }
int lstn;
lstn = listen(sock,5);
if (lstn==SOCKET_ERROR)
{
    cout<<"Error for lestening.";
}
else
{
    cout<<"Lestening for incomming connection...\n";
}

SOCKET cnct;

cnct = accept(sock,(sockaddr*)&server,0);
if (cnct==INVALID_SOCKET)
{
    cout<<"Error for accept";
}
else
{
    cout<<"A new cleint has been accpted";
}

std::cin.get();

return 0;




}


EDIT: Spécification du langage dans la coloration syntaxique.