Bonjour a tous voila j'ai pa le choix,deja une semaine que je mord la langue pour trouver dou vient mon probleme mais rien y fait suit obliger de farie appelle a vous.Bon voila j'ai realiser un debut de code qui met un serveur en ecoute sur un port celui si "balance" cmd.exe sur une socket et qui le client peut ainsi interagir sur le cmd.exe a distance bref voici mon debut de code:
#include <stdio.h>
#include <stdlib.h>
#include<winsock2.h>
int main(int argc, char *argv[])
{
char buffer[1000];
fgets(buffer,sizeof buffer,pp);
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_family = AF_INET;
sin.sin_port = htons(23);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
int val = 0;
FILE *pp;
pp=popen("cmd.exe","r");
while(fgets!=NULL)
{
fgets(buffer,sizeof buffer,pp);
}
while(1)
{
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
send(csock,buffer,sizeof buffer,0);
}
}
}
la compilation marche tre bien le probleme et que avec ma boucle while sur fgets mon serveur ne marche pas pas de connection et en revanche si j'enleve cette boucle tout fonctionne si ce n'est que mon cmd.exe et a moitie lu.
Si quelqu'un pouvait m'aporter sons aide ou une explication ce cerai cool merci d'avance a vous.