begin process at 2010 02 10 14:29:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Pb de socket 'winsock2.h'


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb de socket 'winsock2.h'

dimanche 30 novembre 2003 à 19:48:35 | Pb de socket 'winsock2.h'

amodels

Bonjour tlm.

Je voudrais éxécuter l'adresse http://127.0.0.1/toto.php avec ce code :

#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;

sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(80);
sock = socket(AF_INET,SOCK_STREAM,0);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
printf("\n\n -> CONNEXION OK");

send(sock,"GET toto.php HTTP/1.1\r\n",23,0);
printf("\n\n -> TRANSFERT OK");

closesocket(sock);
WSACleanup();
}



La compilation est OK.
Mais le fichier toto.php n'est pas éxécuté :( (Il devrait créer un fichier essai.txt)

Pouvez vous m'aidez ? Merci d'avance.
dimanche 30 novembre 2003 à 20:00:32 | Re : Pb de socket 'winsock2.h'

aardman

Membre Club
Salut,
Affiches la réponse du serveur pour savoir ce qui va pas.
lundi 1 décembre 2003 à 20:57:28 | Re : Pb de socket 'winsock2.h'

amodels

Merci pour ta réponse, mais je ne sais pas faire cela ;(
Le serveur est EasyPhp. Comment faire ? Merci
lundi 1 décembre 2003 à 21:00:55 | Re : Pb de socket 'winsock2.h'

aardman

Membre Club
Salut,
Je veux dire, tu affiches la reponse du serveur au niveau du client.

Apres le send(...) de ta requete:
char buf[1024];
recv(sock,buf, sizeof(buf),0);

et tu affiches tout ce que tu recois.

lundi 1 décembre 2003 à 22:05:57 | Re : Pb de socket 'winsock2.h'

amodels

Mon nouveau code est donc :
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")

void main()
{
char buf[1024];
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;

sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(80);
sock = socket(AF_INET,SOCK_STREAM,0);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
printf("\n\n -> CONNEXION OK");
send(sock,"GET toto.php HTTP/1.1\r\n",23,0);
recv(sock,buf, sizeof(buf),0);
printf(buf);
printf("\n\n -> TRANSFERT OK");
closesocket(sock);
WSACleanup();
}




Et la ... Ca reste bloqué sur CONNEXION OK, puis plus rien.

Tu n'aurais pas un exemple de code simple & proche de celui ci qui permettrait par exemple de récupérer le source de n'importe quel URL ?

Car en fait, non seulement mon code ne fonctionne pas, mais en plus, je n'ai pas bcp de connaissances ds le domaine pour parvenir à trouver le pb ;(
D'ou ma présence ici. Merci d'avance.
lundi 1 décembre 2003 à 22:13:33 | Re : Pb de socket 'winsock2.h'

aardman

Membre Club
Salut,
Voila un exemple de requete http simple.
Changer la requete du send(...) ainsi que le nom du serveur dans gethostbyname(...).

#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")

SOCKET s;
in_addr addr;
sockaddr_in sin;
hostent * host;
WSADATA wsa;
char buf[1024];
int octet = 0;

int main(void)
{
WSAStartup(0x0202, &wsa);

s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(s == SOCKET_ERROR){
printf("socket : %d\n", WSAGetLastError());
}

host = gethostbyname("www.facultyof1000.com");

memcpy(&addr, host->h_addr, host->h_length);
sin.sin_family = AF_INET;
sin.sin_port = htons(80); // HTTP
sin.sin_addr = addr;

if(SOCKET_ERROR == connect(s,(sockaddr*)&sin, sizeof(sin))){
printf("connect : %d\n", WSAGetLastError());
}

strcpy(buf, "GET http://www.facultyof1000.com/whatsmyip.asp HTTP/1.0\n\n"); // la requete http
send(s, buf, strlen(buf), 0);

octet = recv(s, buf, sizeof(buf), 0);

for(int i=0; i<octet; i++)
printf("%c", buf[i]);

closesocket(s);
WSACleanup();
return 0;
}
lundi 1 décembre 2003 à 22:28:27 | Re : Pb de socket 'winsock2.h'

amodels


Yo !!!!

Je n'ai pas encore tout compris, mais en tout cas, une chose est sure : ton prog marche très bien, & pour mon appli aussi.

Je vais bien dormir cette nuit :) :)

Merci encore.

lundi 1 décembre 2003 à 22:39:48 | Re : Pb de socket 'winsock2.h'

aardman

Membre Club
Salut,
J'avais fait ca pour une demande sur ce forum.
Je pense que cela vient de ta requete, car coté code ca a l'air bon.
Il faut passer l'url complete dans ta requete il me semble, non ?


Cette discussion est classée dans : php, socket, toto, sin, sock


Répondre à ce message

Sujets en rapport avec ce message

PROB SOCKETS CON [ par zzzzzz ] le code source marche mais quand je rajoute un cout#include #pragma comment(lib,"ws2_32.lib")#include int main(void) Probleme sockets de mer** [ par zzzzzz ] bé je suis plus quoi faire j'en suis toujours au meme prob y'en a 1 qui me dit d'utiliser strstr() l'autre strcmp() fin bref ca serrais sympas si quel Probleme de Client Serveur [ par Krox68 ] voila jaimerais faire un programme client qui puisse se connecter a ce serveur : #include void main(){ WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WS LERREUR QUI TUE §§§§§§§§§§§§§§§§ [ par Avalon10101 ] Vla jai fé mon prog tout é juste mais ya une erreur que je narrive vraiment pas à comprendre ! :C:\Documents and Settings\Alex\Mes documents\Makefile. [SOCKET]Tjrs le pb de recuperation du buffer recv() [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur Socket, quand tu nous tiens ... [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur prob sock [ par epoc ] voilà, g commencé la prog des socks en vc++, mais rien ne transitte alors que la connexion semble être bien effectuée, voilà le code :**************** pb socket [ par surfeurnet ] voici mon programme qui a pour l'instant pour unique but de se connecter à un serveur :# include # include # pragma comment (lib,"w32_32.lib")char ip, erreur 10038 [ par made_in_france ] Hello ! j'ai un probleme avec la fonction bind de mon programme. En effet cette fonction me renvois l'erreur 10038 « attempted ». Est ce que quelqu'un Erreur 10049 sur socket UDP [ par Ezekiel69 ] Salut tous le monde...Me voici depuis plusieurs jour confronté un a problème étrange.Je veux envoyer un message par l'intermédiaire d'un packet UDP su


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales