i created a server to where the Sname along with the mesage is sent over to the client, but when the sname and message is received random symbols are appearing. Can anybody help me and determine why these symbols are appearing. Any help is greatly appreciated
Code:
/* chatserver.c */
#include <stdlib.h>
#include <stdio.h>
#include "cnaiapi.h"
#define BUFFSIZE 128
#define MAX_SNAME 10
int recvln(connection, char *, int);
int readln(char *, int);
void concatenate_strings (char *source, int source_len, char *dest, int dest_len)
{ int i;
for(i=0; i<dest_len; i++){
source[source_len + i] = dest[i]; }
source[source_len + dest_len] = NULL;
}
/*-----------------------------------------------------------------------
*
* Program: chatserver
* Purpose: wait for a connection from a chatclient & allow users to chat
* Usage: chatserver <appnum>
*
*-----------------------------------------------------------------------
*/
int
main(int argc, char *argv[])
{
connection conn;
int len;
char buff[BUFFSIZE];
char sname[MAX_SNAME];
if (argc != 2) {
(void) fprintf(stderr, "usage: %s <appnum>\n", argv[0]);
exit(1);
}
/* Input Name to use */
printf ("Enter your chat name. \n");
len = readln( sname, MAX_SNAME);
/* To add the ">" after the name */
sname[len -1] ='>';
sname[len] = NULL;
(void) printf("Chat Server Waiting For Connection.\n");
/* wait for a connection from a chatclient */
conn = await_contact((appnum) atoi(argv[1]));
if (conn < 0)
exit(1);
(void) printf("Chat Connection Established.\n");
/* iterate, reading from the client and the local user */
while((len = recvln(conn, buff, BUFFSIZE)) > 0) {
(void) fflush(stdout);
(void) write(STDOUT_FILENO, buff, len);
/* send a line to the chatclient */
printf (sname);
(void) fflush(stdout);
if ((len = readln(buff, BUFFSIZE+MAX_SNAME)) < 1) //
break;
buff[len - 1] = '\n';
concatenate_strings (sname, MAX_SNAME, buff, BUFFSIZE);
printf (sname);
(void) send(conn, sname, MAX_SNAME+BUFFSIZE, 0);
}
/* iteration ends when EOF found on stdin or chat connection */
(void) send_eof(conn);
(void) printf("\nChat Connection Closed.\n\n");
return 0;
}