Accueil > Forum > > > > socket winsock grrr
socket winsock grrr
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ée 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
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|