Connect et Errno se contredisent ! - C++ - Programmation
Marsh Posté le 29-03-2005 à 09:36:05
J'allais justement le faire ! ;-)
Attention c'est du B-A BA, ca fait longtemps que je n'ai plus programmé alors j'y vais par petites touches.
#include <iostream>
#include <process.h>
#include <stdlib.h>
#include <errno.h>
#include <winsock2.h>
int main (int argc, char *argv[])
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
int i=22;
char buffer [20];
int Erreur;
sock = socket(AF_INET, SOCK_STREAM, 0);
CodeErreur(errno);
sin.sin_addr.s_addr = inet_addr("1999.12.261.1" );
//sin.sin_addr.s_addr = htonl(INADDR_ANY );
sin.sin_family = AF_INET;
// sin.sin_port = htons(3490);
sin.sin_port = htons(0);
//bind(sock, (SOCKADDR *)&sin, sizeof(sin));
memset(&(sin.sin_zero), '\0', 8);
if (connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == SOCKET_ERROR )
{
CodeErreur(errno);
}
et... (la suite n'est pas importante).
CodeErreur affiche simplement le message correspondant au code de l'erreur.
L'adresse IP est volontairement du n'importe quoi : errno renvoie quand même 0 !
Avec une IP correcte etc.. ca ne fonctionne pas et toujours 0 pour errno.
Merci !
Marsh Posté le 29-03-2005 à 11:16:32
Ca marche !!
En utilisant SOCK_DGRAM qui ne demande pas un socket demandeur (serveur).
Ca n'explique pas pourquoi je n'ai pas de code d'erreur avec errno.. Ou alors ce n'est pas prévu..
Marsh Posté le 29-03-2005 à 09:11:56
bonjour,
Sous environnement XP Pro, pour faire un embryon de serveur.. (je fais mes premiers pas) :
Sous Dev-C++, en voulant créer un socket (débutant), connect me renvoie -1 donc problème.
Je teste errno qui lui me renvoie 0 : pas de problème !!!
Et ca ne fonctionne pas...
Quelqu'un a une idée ?
Merci