Hello Everyone,
I'm working on a couple of programs, client/server. I'm using winsock library to handle data transfer between the two programs. I'm having a problem when it comes to sending int values, they must be converted to (char *) since that's the data type of the buffers used in the socket Send() and Recv() functions. to elaborate, consider the following:
Client side:
-----------
unsigned char rnd[4];
int noncer =0;
// Generating a random number
RAND_pseudo_bytes(rnd,sizeof(rnd));
noncer = (int)rnd;
non1=(char*)noncer;
// These two lines produce the same output which is 1244556
cout <<"\n Noncer :" << noncer << "\n";
cout.flush();
cout <<"\n Noncer char :" << (int)non1 << "\n";
cout.flush();
SendData(Socket, non1);
Server Side:
-----------
int client_nonce;
char String[50];
String_initialization(String);
// Reading the nonce identifier
RecieveMessage(socket, String, number_of_bytes);
client_nonce = (int)String;
// this results in 1244588 !!
cout<<"\n the nonce is:"<<client_nonce <<endl;
cout.flush();
If anyone can tell me what's causing the change of data i'd really appreciate it.
Thank you all in advance.
Layla.