Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1804 connectés 

  FORUM HardWare.fr
  Programmation
  C

  pb tcp ip sur le port 515 (printer)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb tcp ip sur le port 515 (printer)

n°781606
jul82
Posté le 29-06-2004 à 16:20:28  profilanswer
 

Bonjour, je dois porgrammer un simulateur d'imprimante.j'ai déja tout programmé il me reste que la liaison a mettre en place;je veut mettre en place une liaison ethernet.
pour cela je dois ecouter le port 515.
En effet je travaille sous linux et je dois recuperer ce que m'envoit lpd .  Voici mon code :#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/un.h>
#include <stdio.h>
 
#define MAXLINE 4096
#define MASOCKET 515
 
int main(int argc, char **argv)
{
  int listenfd, connfd;
  struct sockaddr_in servaddr;
  char buff[MAXLINE];
  time_t tics;
   
  if ((listenfd = socket(AF_INET, SOCK_STREAM, 0))<0)
    {
      perror("socket error" );                      
      exit(1);
    }
   
  bzero(&servaddr, sizeof(servaddr));
   
  servaddr.sin_family     = AF_INET;
  servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
   
  servaddr.sin_port       = htons(MASOCKET);
 
  if (bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)
    {    
      perror("bind error" );                        
      exit(1);
    }
   
  if (listen(listenfd, 5) < 0)
    {
      perror("listen error" );
      exit(1);
    }
 
   
    while (1)
      {    
 if ((connfd = accept(listenfd, (struct sockaddr *) NULL, NULL)) < 0)
   {    
            perror("accept error" );      
            exit(1);
   }
   
 
        read(connfd, buff, strlen(buff))
 
   // recuperation des données
   
 
        close(connfd);
      }
}
 
en fait il ne se passe rien quand j'envoit la commande lp toto.txt par exemple.
Je ne comprend car mon prog fonctionne sur un numero de port différent. :bounce:  
 
 
 

mood
Publicité
Posté le 29-06-2004 à 16:20:28  profilanswer
 

n°781782
blackgodde​ss
vive le troll !
Posté le 29-06-2004 à 20:21:39  profilanswer
 

il me semble qu'avec les *nix, seuls les administrateurs peuvent ouvrir des ports < 1000 ? a confirmer


---------------
-( BlackGoddess )-
n°781999
jul82
Posté le 30-06-2004 à 08:07:28  profilanswer
 

Oui mais je suis administrateur

n°782371
SoWhatIn22
Posté le 30-06-2004 à 13:26:56  profilanswer
 

et si tu fais un telnet sur le port 515 de la machine qui fait tourner ce programme, puis que tu envoies des données dans cette session telnet, il ne se passe toujours rien?
Rien de tel qu'un telnet pour vérifier si un serveur réponds bien comme on le pense. C'est sûr qu'après, on ne peut pas envoyer de données binaires, mais au moins tu verras si la connexion est ok.
 
edit:typo


Message édité par SoWhatIn22 le 30-06-2004 à 13:27:22
n°782430
black_lord
Truth speaks from peacefulness
Posté le 30-06-2004 à 14:14:52  profilanswer
 

BlackGoddess a écrit :

il me semble qu'avec les *nix, seuls les administrateurs peuvent ouvrir des ports < 1000 ? a confirmer


 
1024 en fait (si je me plante c'est l'air con :D)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°782434
jul82
Posté le 30-06-2004 à 14:16:36  profilanswer
 

Ok je vais essayer un telnet.merci

n°782462
jul82
Posté le 30-06-2004 à 14:31:25  profilanswer
 

La connexion est ok mais le serveur ne renvoie pas de reponse

n°783176
SoWhatIn22
Posté le 01-07-2004 à 09:08:16  profilanswer
 

de quel serveur parles tu (histoire d'être sûr qu'on parle bien de la même chose)?
Dans le code que tu as donné, ton process lit les données et ferme la connexion, mais n'envoie pas de réponse. Donc soit tu t'embrouilles les neurones, soit tu nous donne un code cohérent.

n°783289
jul82
Posté le 01-07-2004 à 11:01:51  profilanswer
 

Pour moi le serveur est l'application dont j'ai donné le code.C'est le simulateur de l'imprimante.

n°783318
SoWhatIn22
Posté le 01-07-2004 à 11:22:35  profilanswer
 

oki.
passe à la 2nde partie de ma réponse alors.

mood
Publicité
Posté le 01-07-2004 à 11:22:35  profilanswer
 

n°783379
jul82
Posté le 01-07-2004 à 12:02:03  profilanswer
 

la fonction accept retourne un descripteur de connection qui est utilisee pour la communication avec le nouveau client.

n°783453
SoWhatIn22
Posté le 01-07-2004 à 13:10:53  profilanswer
 

tu attends quoi comme réponse? ton code ne montre *rien* qui ressemble à une réponse.

n°783518
jul82
Posté le 01-07-2004 à 14:14:39  profilanswer
 

Oui je crois que tu a raison!!!!
Tu mettrais qupoi pour renvoyer une reponse un write
Je te demande ca car je n'y connais rien en reseau.merci

n°783744
SoWhatIn22
Posté le 01-07-2004 à 16:06:24  profilanswer
 

send

Code :
  1. const char ack[] = "ok.\n";
  2. if(-1==send(connfd,ack,sizeof ack)) perror("send" );


n°784269
jul82
Posté le 02-07-2004 à 07:59:37  profilanswer
 

merci pour ta reponse SoWhatln22.Cependant je ne peux la tester que lundi je tedirais alors si ca marche .A+

n°786762
jul82
Posté le 05-07-2004 à 11:32:55  profilanswer
 

CA marche toujours pas je ne  comprend pas ...

n°787904
SoWhatIn22
Posté le 06-07-2004 à 11:52:28  profilanswer
 

alors remplace

Code :
  1. read(connfd, buff, strlen(buff))


par

Code :
  1. recv(connfd, buff, strlen(buff),0)


et

Code :
  1. send(connfd,ack,sizeof ack))


par

Code :
  1. send(connfd,ack,sizeof ack),0)


d'ailleurs le bout de code que je t'ai filé ne devait même pas compiler, je ne sais pas comment tu fais.

n°788710
jul82
Posté le 07-07-2004 à 08:04:09  profilanswer
 

merci je vais tester ces nouvelles commandes. Pour ce qui est de la compilation il n'y avait aucun pb j'ai juste rajouter des parenthèses.

n°793394
jul82
Posté le 12-07-2004 à 11:18:48  profilanswer
 

ca ne marche pas mé j'ai trouvé une nouvelle solution


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  pb tcp ip sur le port 515 (printer)

 

Sujets relatifs
est-c possible de controler une broche du port serie ?port série win 98
question (simple) sur le port sérieI/O sur le port série
Programme perl ou php sur un port précisinitialisation communication port serie
envoi de caractères par le port série[C++]Port Serie -> Envoi d'un fichier texte...
[C] problème avec la fonction write sur un port sériePort serie / Classpath???
Plus de sujets relatifs à : pb tcp ip sur le port 515 (printer)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR