|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : socket winsock grrr [ Archives / Réseau / Internet ] (dekai)
Informations & options pour cette discussion
dimanche 7 mars 2004 à 06:09:58 |
socket winsock grrr

dekai
|
Voilà mon pb lorsque je tente un send ou recv j'obtient une erreur et ej comprends pas pourquoi. Merci de m'aider. Voici le code (je travaille sous dev-c++ 4.9.8.0) : #include <winsock.h> #include <stdio.h>
//global variable int Socket; //end global variable
void initialize_socket(int port) { //variables WSADATA data; struct sockaddr_in name; int name_lenght = sizeof (name); //end variables
//initialize winsock if (WSAStartup(MAKEWORD(1,1), &data) != 0) printf ("Impossible d'initialiser Winsock.\n\n"); else printf("Winsock initialisé avec succès.\n\n"); //end initialize winsock
//create socket Socket = socket (AF_INET, SOCK_STREAM, 0); if (Socket == INVALID_SOCKET) printf("Erreur lors de la création de la socket : erreur %d.\n\n", WSAGetLastError()); else printf ("Socket créée avec succès.\n\n"); //end create socket //bind socket name.sin_family = AF_INET; name.sin_port = htons (port); name.sin_addr.S_un.S_addr = htonl (INADDR_ANY); if (bind (Socket, (struct sockaddr *) &name, sizeof (name)) == SOCKET_ERROR) printf("Erreur lors du bind de la socket : erreur %d.\n\n", WSAGetLastError()); else printf("Bind de la socket réalisé avec succès.\n\n"); //end bind socket
//socket in listen mode if (listen (Socket, SOMAXCONN) == SOCKET_ERROR) printf("Impossible de mettre la socket en mode écoute : erreur %d.\n\n", WSAGetLastError()); else printf ("Socket en mode écoute.\n\n"); //end socket in listen mode //socket accept incoming connection if (accept (Socket, (struct sockaddr *) &name, &name_lenght) == INVALID_SOCKET) printf("Connexion cliente refusée : erreur %d.\n\n", WSAGetLastError()); else printf ("Connexion cliente acceptée.\n\n"); //end socket accept incoming connection }
void receive_data_from_a_connected_socket(char *buffer) { if (recv (Socket, buffer, strlen(buffer), 0) == SOCKET_ERROR) printf("Impossible de recevoir depuis le client : erreur %d.\n\n", WSAGetLastError()); else printf ("Reception à partir du client ok.\n\n"); }
void send_data_on_a_connected_socket(char *buffer) { if (send (Socket, buffer, strlen(buffer), 0) == SOCKET_ERROR) printf ("Erreur d'envoi vers le client : erreur %d.\n\n", WSAGetLastError()); else printf ("Envoi vers le client ok.\n\n"); } int main() { char buffer[1024]; char welcome [] = "coucou c'est moi"; initialize_socket(25); send_data_on_a_connected_socket(welcome); receive_data_from_a_connected_socket(buffer); system("PAUSE"); }
|
Ne pas oublier -lwsock32 lors de l'appel du compilateur (cf option du compilateur).
|
|
|
dimanche 7 mars 2004 à 10:22:59 |
Re : socket winsock grrr

petitchech
|
Salut,
#include <winsock2.h> #include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
//global variable
SOCKET Socket; SOCKET SocketClient;
//end global variable
void initialize_socket(int port) { //variables WSADATA data; struct sockaddr_in name; int name_lenght = sizeof (name); //end variables
//initialize winsock if (WSAStartup(MAKEWORD(2,0), &data) != 0) printf ("Impossible d'initialiser Winsock.\n\n"); else printf("Winsock initialisé avec succès.\n\n"); //end initialize winsock
//create socket Socket = socket (AF_INET, SOCK_STREAM, 0); if (Socket == INVALID_SOCKET) printf("Erreur lors de la création de la socket : erreur %d.\n\n", WSAGetLastError()); else printf ("Socket créée avec succès.\n\n"); //end create socket
//bind socket name.sin_family = AF_INET; name.sin_port = htons (port); name.sin_addr.s_addr=INADDR_ANY; if (bind (Socket, (struct sockaddr *) &name, sizeof (name)) == SOCKET_ERROR) printf("Erreur lors du bind de la socket : erreur %d.\n\n", WSAGetLastError()); else printf("Bind de la socket réalisé avec succès.\n\n"); //end bind socket
//socket in listen mode if (listen (Socket, SOMAXCONN) == SOCKET_ERROR) printf("Impossible de mettre la socket en mode écoute : erreur %d.\n\n", WSAGetLastError()); else printf ("Socket en mode écoute.\n\n"); //end socket in listen mode
//socket accept incoming connection if ((SocketClient = accept (Socket, (struct sockaddr *) &name, &name_lenght)) == INVALID_SOCKET) printf("Connexion cliente refusée : erreur %d.\n\n", WSAGetLastError()); else printf ("Connexion cliente acceptée.\n\n"); //end socket accept incoming connection }
void receive_data_from_a_connected_socket(char *buffer) { if (recv (SocketClient, buffer, sizeof(buffer), 0) == SOCKET_ERROR) printf("Impossible de recevoir depuis le client : erreur %d.\n\n", WSAGetLastError()); else printf ("Reception à partir du client ok.(%s)\n\n",buffer); }
void send_data_on_a_connected_socket(char *buffer) { if (send(SocketClient, buffer, strlen(buffer), 0) == SOCKET_ERROR) printf ("Erreur d'envoi vers le client : erreur %d.\n\n", WSAGetLastError()); else printf ("Envoi vers le client ok.\n\n",buffer,SocketClient); }
int main() { char buffer[1024]; char welcome [] = "coucou c'est moi\r\n"; initialize_socket(6667); send_data_on_a_connected_socket(welcome); memset(buffer,0,sizeof(buffer)); receive_data_from_a_connected_socket(buffer); system("PAUSE"); return 0; }
|
|
|
dimanche 7 mars 2004 à 21:37:00 |
Re : socket winsock grrr
|
lundi 8 mars 2004 à 03:12:49 |
Re : socket winsock grrr
|
lundi 8 mars 2004 à 03:14:35 |
Re : socket winsock grrr

dekai
|
Ah non encore un pb je comprends pas pourquoi lorsque j'execute la fonction receive_data_from_a_connected_socket la socket se ferme après avoir récupérer un seul caractère alors que la taille du buffer est de 1024 ?!?
|
|
|
lundi 8 mars 2004 à 12:25:00 |
Re : socket winsock grrr

petitchech
|
Ta essayer avec telnet ? si oui c telnet il envoi des un caractere des ke tu prece une touche.
|
|
|
lundi 8 mars 2004 à 17:59:49 |
Re : socket winsock grrr

dekai
|
Ouais exact j'ai essayer avec telnet donc tu penses que c'est lui le pb ? Bon ben je vais coder un petit client alors. Merci pour ton aide.
|
|
|
jeudi 26 mai 2005 à 23:12:28 |
Re : socket winsock grrr

petitedouceur
|
petichech>> C'est pas chaud de jouer avec des variables globales?
|
|
|
vendredi 27 mai 2005 à 13:15:24 |
Re : socket winsock grrr
|
mardi 11 avril 2006 à 11:19:22 |
Re : socket winsock grrr

reistlein
|
super programme mais quand tu envoies tu n'envoie que 4 caractère car
send(SocketClient, buffer, sizeof(buffer), 0)
au lieu de
send(SocketClient, buffer, sizeof(char)* strlen(buffer), 0)
pour recevoir
c'est
recev(SocketClient, buffer, sizeof(char)*1024, 0)
je ne suis pas un pro en c++ si je me suis planter dite le moi.
aller @+
|
|
|
Cette discussion est classé dans : buffer, erreur, printf, socket, name
Répondre à ce message
Sujets en rapport avec ce message
Envois et reception de commande [ par t0Xic_h ]
SalutVoici mon code source .La connection entre le client et le serveur se passe bien, mais je n'ai pas su ecrirele code qui me permettera d'envoyer l
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
protocole TCP HELP me [ par lolobardon ]
Bonjour à tous,je suis actuellement à Pékin pour effectuer un semestre d'études. Je suis élève ingénieur en électronique mais l'embêtant c'est qu'ici
Buffer overflow [ par tomk_41 ]
Voila maintenant plusieurs jour que je flanche sur un problème. Dans le cadre d'un cours de sécurité informatique, je dois réussir à faire afficher "B
UpdateResource() ICON [ par maladedede ]
BonjourJ'ai deja utiliser plusoeur fois Update resource pour changer des resources du type RCDATA d'un ".exe"Et la c'est la resourc ICON du ".exe" que
ReadFile et port USB [ par je_ne_viens_qu1_fois ]
Bonjour à tousJ'aurai besoin d'une aide en toute urgence concernant le dialogue avec un microcontroller via le port USB.J'ai résussi à faire le "Creat
Winsock2 WASEvents... [ par fraboulet ]
Bonjour à tous,J'ai une question concernant winsock2, je souhaite faire un thread d'écoute de sockets. Mais je souhaite pouvoir ajouter dynamiquement
Bind socket erreur [ par Taron31 ]
Bonjour, en codant avec les socket j'ai une erreur avec le bind, pourtant je ne décèle pas d'erreur au niveau du code, apparement c'est un pb techniqu
Probleme entre DLL et socket [ par XKaliBur ]
Le probleme est que je réalise un hook sur mon clavier et que chaque frappe interceptée je veux l'envoyer via un socket à un serveur, mais des que j'e
chat client server [ par electroonn ]
Bonjour, j'essaye de developper avec c++ une application de chat (client-server) sous windows, en voici le code:Server server; Client client; void m
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|