hi all~

i made a simple socket test and it worked. but it is weired that the message changes both from client to server and from server to client. for example i send a message "hi" to server and server will get something like "hiU" and if i send this message back to client side i will get a string like "hiU#e" etc, i dont know why and have no idea how to sort it, any help will be grateful, thanks.

here's my code for message sending and receiving.

// client side code
Code:
......
// Send input message to server~
int len = write(socketId, message, strlen(message));
if (len < 0)
{
printf("Error: Can not send messages to server~\n");
return -1;
}
printf("Message send to server: %s\n", message);
printf("Message length: %d\n", strlen(message));
// Blocks until client gets a message back~
int msgMaxSize = 128;
char messageBack[msgMaxSize];
len = read(socketId, messageBack, msgMaxSize);
if (len < 0)
{
printf("Error: Can not get message from server~\n");
return -1;
}
printf("Message back from server: %s\n", messageBack);
printf("Message length: %d\n", strlen(messageBack));
......
// server side code:
Code:
......
// Handle message from the client~
int msgMaxSize = 128;
char message[msgMaxSize];
len = read(clientSocket, message, msgMaxSize);
if (len < 0)
{
printf("Error: Can not read data from client socket~\n");
return -1;
}
printf("Message from client: %s\n", message);
printf("Message length: %d\n", strlen(message));
char messageTo[strlen(message)];
strcpy(messageTo, message);
len = write(clientSocket, messageTo, strlen(messageTo));
if (len < 0)
{
printf("Error: Can not write data to client socket~\n");
return -1;
}
printf("Message to client: %s\n", messageTo);
printf("Message length: %d\n", strlen(messageTo));
......