hi all,

I have been struggling for a while with my client/server program.
I have to authenticate in order to log on correctly.

I have managed to get most things sorted, asking for username ( which is a long integer (12) ) and also and customer ID (also an int (4)), and they are stored into 2 arrays. I can then send them from the client to the server.

For now all I am doing is printing the two integers out to see that they are correct, however when if I printf the data the numbers do not match what I typed into the client, and I do not know why ?

It is pointless trying to go onto the next stage of validating the numbers from a text file until i get this part sorted.

Somebody said that i needed to convert my integers into strings in my client program before sending them to the server as they will get corrupted...how on earth do i do this ? Is this true ? Do i need to do it, or is there another way?

Cheers for looking and any advice would be greatly appreciated.

Fatboy

If the client is MS-Windows and the server is *nix then you have Big Endian-Little Endian proglem The easiest way I know to correct it is to transfer the data as ascii text then use atol() or similar function on server side to convert back to integer in its own format.

ok cool having looked at that description that does indeed sound like the problem, i am running this on unix by the way. however how do i change the integer into an ascii code ? thats the bit i cannot find or do !

>> i am running this on unix by the way
if both client and server are on the same os (unix) then the problem is something else.

>> how do i change the integer into an ascii cod
c++ example, use stringstream class

#include <sstream>
...
...
stringstream stream;
int n = 123;
stream << n;
cout << stream.str();

c example

#include <stdio.h>
#include <string.h>
...
...
char buffer[80];
int n = 123;
sprintf(buffer,"%d", n);
printf("%s\n", buffer);
This article has been dead for over six months. Start a new discussion instead.