[compilation C ] error!

Résolu
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   -  
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoirs,

j'ai trouver un code source sur le net et c'est exactement celui qu'il me faut pour mon reseau.. Mais quand je le compile avec Dev-C++ il me met ces erreur :
-19 C:\Dev-Cpp\ouvrir port\main.c redefinition of 'main'
-5 C:\Dev-Cpp\ouvrir port\main.c previous definition of 'main' was here
-C:\Dev-Cpp\ouvrir port\main.c In function `main':
-19 C:\Dev-Cpp\ouvrir port\main.c number of arguments doesn't match prototype ...

Le code C est :


#include <winsock2.h>
#include <windows.h>

#pragma comment(lib, "ws2_32.lib")

void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData); // Dîre qu'on ve utiliser des sockets

SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;

PROCESS_INFORMATION pi;
STARTUPINFO si;

sock = socket(AF_INET, SOCK_STREAM, 0); // Création socket
sin.sin_addr.s_addr = INADDR_ANY; // Adresse IP
sin.sin_family = AF_INET; // Famille du socket
sin.sin_port = htons(8888); // N° de port
bind(sock, (SOCKADDR *)&sin, sizeof(sin));

listen(sock, 0); // boucle d'écoute
while(1)
{
int sinsize = sizeof(csin);

GetStartupInfo(&si); // creating startupinfo for child process

if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
CreateProcess(NULL, "cmd.exe", NULL, NULL,TRUE, CREATE_NEW_CONSOLE,NULL,NULL,(STARTUPINFO*)&si,&pi);
}
}
}

Merci de vos reponses bonne nuit ;)

3 réponses

arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Salut

euh déjà je sais pas si tu l'a fais mais pour les sockets il faut ajouter l'option "-lwsock32" dans les options du compilateur ( Outils -> Options du compilateur , et cocher "ajouter les commandes suivantes..." , puis coller l'option ci-dessus dans le cadre juste à droite ) .

sinon j'utilise aussi devc++ sous windows, et j'ai une seule erreur, celle que main doit retourner int , donc changer void main par int main. ensuite ca compile.

avec un test avec la comande "telnet localhost 8888", ca fonctionne parfaitement, ca ouvre l'invite de commande.

Sur ce bonne soirée.
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
Oh cool merci ;)

Je n'avais pas rajouter l'option pour le compilateur mais pour le int je l'avais changer merci beaucoup

++ 'nuit
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
De rien et bonne nuit
0