0

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

2
Contributors
3
Replies
4
Views
10 Years
Discussion Span
Last Post by Ancient Dragon
0

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.

0

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 !

0

>> 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 topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.