[Reseau] probleme client/serveur TCP LInux
Bonjour, lors d'un cours on a du faire l'exemple suivant :
Client TCP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
/**************************
**********CLIENT TCP******
***************************/
#include<errno.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#define PORTS 2058;
int Construit_Adresse(struct sockaddr_in *adresse)
{
adresse->sin_family=AF_INET;
adresse->sin_port=PORTS;
adresse->sin_addr.s_addr=htonl(INADDR_ANY);
}
int Construit_Adresse_Serveur(struct sockaddr_in *adresse)
{
adresse->sin_family = AF_INET;
adresse->sin_port =PORTS;
adresse->sin_addr.s_addr = inet_addr("127.0.0.1");
}
int main(int argc, char *argv)
{
struct hostent *h;
struct sockaddr_in adr_s,adr_c;
char buf[20];
int sock;
/* Création socket */
sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
/* Attachement socket */
Construit_Adresse(&adr_c);
bind(sock,(struct sockaddr *) &adr_c, sizeof(adr_c));
Construit_Adresse_Serveur(&adr_s);
write(sock,"Test de connexion",20);
close (sock);
} |
et Serveur TCP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| /**************************
**********SERVEUR TCP******
***************************/
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#define PORTS 2058;
int Construit_Adresse(struct sockaddr_in *adresse)
{
adresse->sin_family=AF_INET;
adresse->sin_port=PORTS;
adresse->sin_addr.s_addr=htonl(INADDR_ANY);
}
int main()
{
int namelen, sock,nsock;
char buf[20];
struct sockaddr_in adr_s,adr_c;
int lg;
pid_t pid;
/* Création socket */
sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
/* Attachement socket */
Construit_Adresse(&adr_s);
bind(sock,(struct sockaddr *) &adr_s, sizeof(adr_s));
listen (sock,5);
while (1)
{
lg= sizeof(adr_c);
nsock = accept(sock,(struct sockaddr *) &adr_c, &lg);
pid=fork();
if (pid ==0)
{
close(sock);
read(nsock,buf,20);
printf("Chaine recue : %s\n", buf);
close(nsock);
exit(0);
}
}
} |
Mon probleme est que lorsque je lance le serveur puis le client rien ne se passe sur le serveur !!!
On a fait un exmple en UDP et la sa fonctionne !! quelqu'un pourrait t'il m'aider sur mon erreur ??