socket:send integer
-
how can i send integer ??:confused: ---help---
/*
Clent socket tcp
*/
#include //printf
#include //strlen
#include //socket
#include //inet_addrint main(int argc , char *argv[])
{
int sock;
struct sockaddr_in server;
char message[1000] , server_reply[2000];
int a;
char r1;//Creation d1 socket sock = socket(AF\_INET , SOCK\_STREAM , 0); if (sock == -1) { printf("impossible de creer une socket\\n"); } puts("Socket creer!!!! good job"); server.sin\_addr.s\_addr = inet\_addr("127.0.0.1");//adresse ipv4 server.sin\_family = AF\_INET;// famille d'@ server.sin\_port = htons( 8880 );//\*\*en utilisent big endien NBO pour la sérialiser , htons (host to network short) //Connection au serveur
puts ("connection au serveur\n") ;
if (connect(sock , (struct sockaddr *)&server/*pointeur sur l'@ du serveur est qui est passé en parametre**/ , sizeof(server)) < 0)
{
perror("peut pas connecter au serveur");
return 1;
}puts("vous etnSes Connecté\\n"); //communition server while(1) { printf("Enter votre nbres : "); scanf("%d " ,&a ); //envoyer data if (( send(sock , (char \* )& a , sizeof(&a) , 0) < 0) ) { puts("l'envoie a ete echoué"); return 1; } //la réponse du serveur if( recv(sock , (char \*)& a , 2000 , 0) < 0) { puts("recv echoué"); break; } } close(sock); return 0;
}
/*
C socket server TCP
*/#include
#include //strlen
#include
#include //inet_addr
#include //writeint main(int argc , char *argv[])
{
int socket_desc , client_sock , c , read_size,read_size1;
struct sockaddr_in server , client;
char client_message[2000];
int a;
char t ;//Creation d1 socket socket\_desc = socket(AF\_INET , SOCK\_STREAM , 0); if (socket\_desc == -1) { printf("on peut pas creer la socket"); } puts("Socket bien creer"); //Preparer sockaddr\_in structure server.sin\_family = AF\_INET;//\*\*\*fammille d'@ server.sin\_addr.s\_addr = INADDR\_ANY;//\*\*\*\*\*\*\*\*@ qqn server.sin\_port = htons( 8880);//\*\*\*\*\*en utilisen
-
how can i send integer ??:confused: ---help---
/*
Clent socket tcp
*/
#include //printf
#include //strlen
#include //socket
#include //inet_addrint main(int argc , char *argv[])
{
int sock;
struct sockaddr_in server;
char message[1000] , server_reply[2000];
int a;
char r1;//Creation d1 socket sock = socket(AF\_INET , SOCK\_STREAM , 0); if (sock == -1) { printf("impossible de creer une socket\\n"); } puts("Socket creer!!!! good job"); server.sin\_addr.s\_addr = inet\_addr("127.0.0.1");//adresse ipv4 server.sin\_family = AF\_INET;// famille d'@ server.sin\_port = htons( 8880 );//\*\*en utilisent big endien NBO pour la sérialiser , htons (host to network short) //Connection au serveur
puts ("connection au serveur\n") ;
if (connect(sock , (struct sockaddr *)&server/*pointeur sur l'@ du serveur est qui est passé en parametre**/ , sizeof(server)) < 0)
{
perror("peut pas connecter au serveur");
return 1;
}puts("vous etnSes Connecté\\n"); //communition server while(1) { printf("Enter votre nbres : "); scanf("%d " ,&a ); //envoyer data if (( send(sock , (char \* )& a , sizeof(&a) , 0) < 0) ) { puts("l'envoie a ete echoué"); return 1; } //la réponse du serveur if( recv(sock , (char \*)& a , 2000 , 0) < 0) { puts("recv echoué"); break; } } close(sock); return 0;
}
/*
C socket server TCP
*/#include
#include //strlen
#include
#include //inet_addr
#include //writeint main(int argc , char *argv[])
{
int socket_desc , client_sock , c , read_size,read_size1;
struct sockaddr_in server , client;
char client_message[2000];
int a;
char t ;//Creation d1 socket socket\_desc = socket(AF\_INET , SOCK\_STREAM , 0); if (socket\_desc == -1) { printf("on peut pas creer la socket"); } puts("Socket bien creer"); //Preparer sockaddr\_in structure server.sin\_family = AF\_INET;//\*\*\*fammille d'@ server.sin\_addr.s\_addr = INADDR\_ANY;//\*\*\*\*\*\*\*\*@ qqn server.sin\_port = htons( 8880);//\*\*\*\*\*en utilisen
-
how can i send integer ??:confused: ---help---
/*
Clent socket tcp
*/
#include //printf
#include //strlen
#include //socket
#include //inet_addrint main(int argc , char *argv[])
{
int sock;
struct sockaddr_in server;
char message[1000] , server_reply[2000];
int a;
char r1;//Creation d1 socket sock = socket(AF\_INET , SOCK\_STREAM , 0); if (sock == -1) { printf("impossible de creer une socket\\n"); } puts("Socket creer!!!! good job"); server.sin\_addr.s\_addr = inet\_addr("127.0.0.1");//adresse ipv4 server.sin\_family = AF\_INET;// famille d'@ server.sin\_port = htons( 8880 );//\*\*en utilisent big endien NBO pour la sérialiser , htons (host to network short) //Connection au serveur
puts ("connection au serveur\n") ;
if (connect(sock , (struct sockaddr *)&server/*pointeur sur l'@ du serveur est qui est passé en parametre**/ , sizeof(server)) < 0)
{
perror("peut pas connecter au serveur");
return 1;
}puts("vous etnSes Connecté\\n"); //communition server while(1) { printf("Enter votre nbres : "); scanf("%d " ,&a ); //envoyer data if (( send(sock , (char \* )& a , sizeof(&a) , 0) < 0) ) { puts("l'envoie a ete echoué"); return 1; } //la réponse du serveur if( recv(sock , (char \*)& a , 2000 , 0) < 0) { puts("recv echoué"); break; } } close(sock); return 0;
}
/*
C socket server TCP
*/#include
#include //strlen
#include
#include //inet_addr
#include //writeint main(int argc , char *argv[])
{
int socket_desc , client_sock , c , read_size,read_size1;
struct sockaddr_in server , client;
char client_message[2000];
int a;
char t ;//Creation d1 socket socket\_desc = socket(AF\_INET , SOCK\_STREAM , 0); if (socket\_desc == -1) { printf("on peut pas creer la socket"); } puts("Socket bien creer"); //Preparer sockaddr\_in structure server.sin\_family = AF\_INET;//\*\*\*fammille d'@ server.sin\_addr.s\_addr = INADDR\_ANY;//\*\*\*\*\*\*\*\*@ qqn server.sin\_port = htons( 8880);//\*\*\*\*\*en utilisen
There are some errors in your. The first is the buffer size when sending an integer;
if (( send(sock , (char * )& a , sizeof(&a) , 0) < 0) )
The passed buffer size is wrong. It should be:
if (( send(sock , (char * )& a , sizeof(a) , 0) < 0) )
When reading replies, you probably want to read them into another buffer (as indicated by the size). So change
if( recv(sock , (char *)& a , 2000 , 0) < 0)
to
if( recv(sock , server_reply , sizeof(server_reply) , 0) < 0)
Similar for the server where you should first read an integer and then send the reply. So change this
if ( (read_size = recv(client_sock , (char *)&a , 2000 , 0)) > 0 )
to
if ( (read_size = recv(client_sock , (char *)&a , sizeof(a) , 0)) > 0 )
and send the reply afterwards.
-
thank you Richard McCutchan, the problem is that I wanted to display the number at the server level. :doh:
-
There are some errors in your. The first is the buffer size when sending an integer;
if (( send(sock , (char * )& a , sizeof(&a) , 0) < 0) )
The passed buffer size is wrong. It should be:
if (( send(sock , (char * )& a , sizeof(a) , 0) < 0) )
When reading replies, you probably want to read them into another buffer (as indicated by the size). So change
if( recv(sock , (char *)& a , 2000 , 0) < 0)
to
if( recv(sock , server_reply , sizeof(server_reply) , 0) < 0)
Similar for the server where you should first read an integer and then send the reply. So change this
if ( (read_size = recv(client_sock , (char *)&a , 2000 , 0)) > 0 )
to
if ( (read_size = recv(client_sock , (char *)&a , sizeof(a) , 0)) > 0 )
and send the reply afterwards.
merci beaucoup Jochen Arndt :thumbsup:
-
thank you Richard McCutchan, the problem is that I wanted to display the number at the server level. :doh: