begin process at 2012 05 29 22:11:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme socket en telnet


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

Probleme socket en telnet

jeudi 10 novembre 2005 à 17:50:35 | Probleme socket en telnet

tigood42

Bonjour,
je suis en train d'apprendre le fonctionnement des sockets... J'ai créé un serveur qui accepte les multiconnexions simultanément (et bientot avec un timeout j'espere). Pour le moment : je fais : telnet 127.0.0.1 25, et ce que j'écris est affiché sur la fenetre du serveur.. cela fonctionne, par contre, dans la fenetre dos où j'ai écris mon telnet, ca n'affiche que des espaces pour les caractères que j'écris, je ne trouve pas l'erreur. Pouvez vous m'aider ? Merci

Voici mon code (c'est un brouillon, je sais que c pa tres rigoureux) :

#include <iostream>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;

void main()
{
int longueur;
WSADATA WSAData;
WSAStartup(MAKEWORD(2,2), &WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
fd_set Ref ;//pr le multithread
fd_set temp ;
 
FD_ZERO ( &Ref ) ;// initialisation des tableau de fd_set
FD_ZERO ( &temp ) ;


char buf[25];
buf[0]=0;


sock = socket(AF_INET, SOCK_STREAM, 0);//Sock stream : mode TCP ... Af_INET : réseau IP
sin.sin_addr.s_addr= INADDR_ANY;//Le client peut avoir n'importe quel IP
sin.sin_family= AF_INET;// de type réseau IP
sin.sin_port= htons(25);//Le client doit se connecter sur le port 25
bind(sock, (SOCKADDR *)&sin, sizeof(sin));// on affecte les parametres
listen(sock, 0);//On écoute la connection

int sinsize = sizeof(csin);

FD_SET ( sock , &Ref ) ;
temp=Ref;

while(1)
 {
  select ( 0 , &temp , NULL , NULL , NULL ) ;// Multiplexage des Entrées
    
 if ( FD_ISSET ( sock , &temp ) )// On teste s'il s'agit d'une demande de connexion
  {//Demande de connexion
   csock = accept ( sock , (struct sockaddr *)&csin , &sinsize ) ;
   FD_SET ( csock , &Ref ) ;
   cout<<"Nouvelle Connexion acceptee\n";
  }
  else
  {// il s'agit d'un demande de communication
  longueur = recv ( temp.fd_array[0] , buf , sizeof(buf) , 0 ) ;// Reception du message
   buf[longueur]=0;//Pour dire que c la fin de la chaine

   if ( longueur == 0 )
   {
    // Le client n'as rien envoyé, c'est donc qu'il s'est déconnecté
    // On le supprime donc de la liste et on ferme son socket de communication
    FD_CLR ( temp.fd_array[0] , &Ref ) ;
    closesocket ( temp.fd_array[0] ) ;
    cout<<"Fermeture d'une connexion\n";
   }
   else
   {
   // send (temp.fd_array[0] , buf, longueur , 0 ) ;
    cout<<buf;
   }

  }

  temp = Ref ;
  // On rétabli l'ensemble de temp
 }

}



Cette discussion est classée dans : temp, socket, ref, sock, fd


Répondre à ce message

Sujets en rapport avec ce message

Winsock probleme [ par greg13 ] J'ai une erreur de compilation dans le code suivant :#include #include #include #pragma comment(lib, "wsock32.lib")SOCKET Sock;int main(int argc, char winsock probleme 2 [ par greg13 ] J'ai une erreur de compilation dans le code suivant :#include #include #include #pragma comment(lib, "wsock32.lib")SOCKET Sock;int main(int argc, char PLEASE REPONDEZ MOI ! ! ! [ par marelo87 ] bonjour, voila je suis en train de programmer ma premiere appli reseau (tte simple)....mais pour me compliquer un peu la tache je voulais faire en sor 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 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, J'arrive pas à recevoir (C++) [ par lukilou ] Salut, j'ai un petit problème pour la réception d'info mais j'arrive bien à envoyer.Je passe la déclaration du socket etc car ca fonctionne.listen(soc 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 [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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 4,072 sec (4)

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