Bug has developed


 
Thread Tools Search this Thread
Top Forums Programming Bug has developed
# 1  
Old 07-23-2007
Bug has developed

Guys there is another bug that has developed.........now messaged above 6 bytes are trimmed and echoed back to client.After the first message the echo is not regular.I have put a loop in both client and server to check for closing.Moreover for connection close i also need to put another clause that if there is a connection break in either server or client the connection should be closed from other side.Below are the server and clinet side codes after connection

Server
Code:
 while(j!=0)
    {
      memset(buffer,0,1024);/*clear buffer*/
      n = read(newsockfd,buffer,1024);/*read from client*/
      if (n < 0) perror("\n ERROR reading from socket \n");/*check for errors*/
      len=strlen(buffer);
      for(i=0;i<=len;i++)
	{
	  //strcpy(buf1,&buffer[i]);
	  //strcat(buf1,&buffer[i+1]);
	  k= strcmp("/",&buffer[i]);
	
	  if(k==0)
	    break;
	  break;
	}
	      for(p=i;p<=len;p++)
		{
		  j= strcmp("q",&buffer[p]);
		
	      if(j==0)
		{
		  close(newsockfd);
		  close(sockfd);
		  exit(0);
		  
		}
		}
	
	      puts(buffer);/*print message by client*/
	      write(newsockfd,"\n Client wrote",14);/*write to client*/
	      n=write(newsockfd,buffer,sizeof(buffer));/*write to client*/
	      if(n<0)perror("Write Failed");
	
      
    }

Client Side
Code:
	while(k!=0)
	  {
	    memset(&buf, 0, sizeof(buf));
    printf("\n Enter Message for Server");
    gets(buf);
    rc = write(s, buf,sizeof(buf)); 
     if(rc<0)
      {
	perror("write failed");
      }
    /* now that we are connected, start writing to the socket */	
    /* till write() returns 0, meaning the server closed	*/
    /* the connection.				*/
    len=strlen(buf);
    for(i=0;i<=len;i++)
      {
	//strcpy(b1,&buf[i]);
	//strcat(b1,&buf[i+1]);
	       
	l= strcmp("/",&buf[i]);
      
	if(l==0)
	  break;
	break;
      }
	    for(p=i;p<=len;p++)
	      {
	    k=  strcmp("q",&buf[p]);
	    if(k==0)
	      {
		close(s);
		exit (0);
	      }
	      }

	    read(s,buf1,14);
	    read(s,buf2,1024);
	    puts(buf1);/*print messages from server*/
	    puts(buf2);/*print messages from server*/
    
    
	  }
      }


Last edited by reborg; 07-23-2007 at 09:03 AM.. Reason: code tags
# 2  
Old 07-23-2007
Code:
if(k==0)
break;
break;

What is that supposed to achieve?

I suggest you don't use C++ style comments in C code. It's a bad habit for portable code.
# 3  
Old 07-23-2007
arjunjag, be aware of the rules. No homework questions. You are getting the whole college project done by the members of the forum.
# 4  
Old 07-23-2007
Very first request please use CODE tags

Code:
n = read(newsockfd,buffer,1024);/*read from client*/
if (n < 0) perror("\n ERROR reading from socket \n");/*check for errors*/

Why do you continue here even after an error ? ( after perror )
Do you want to continue even when n == 0

Code:
if(k==0)
break;
break;

Does that mean to break irrespective of the value of ' k '. Then why is that part of the code ? Anything specific here ?


Code:
if(j==0)
{
close(newsockfd);
close(sockfd);
exit(0);
}

Parent not waiting for the child to complete


Code:
write(newsockfd,"\n Client wrote",14);/*write to client*/

Flusing before writing and not after that.

Code:
n=write(newsockfd,buffer,sizeof(buffer));/*write to client*/
if(n<0)perror("Write Failed");
}


The same pattern where it continues processing even after write call returns a negative value


Code:
gets(buf);

This function would not check any buffer overrun.

try to use fgets.


Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. OS X (Apple)

Can a ios app be developed on a windows or ipad?

hi, i want to start developing an ios app that can be used on iphone and ipad. can anyone guide me how to start? i saw that it can be developed only on a mac system.. but i dont have a mac system. i have an ipad 4 and a laptop with windows os? can i use one of these to start developing ios app??... (4 Replies)
Discussion started by: Little
4 Replies

2. UNIX for Dummies Questions & Answers

How can I rebuild applications that developed in UNIX? I need to use it in windows os with cygwin

I need to rebuild an application that developed in unix environment and run in windows OS with cygwin. so How can I rebuild from the source code? is there any one who said something on this regard? (2 Replies)
Discussion started by: bejirond
2 Replies

3. Shell Programming and Scripting

How should this code be developed?

i'm trying to test whether wget is working still or not. while <----- how should this look please. do codes done (4 Replies)
Discussion started by: garfish
4 Replies

4. AIX

bug in 43 ???

xxxxserver# lsattr -El inet0 | grep 255.240.0.0,32.224.0.0,32.78.120.254 | grep '.40' route net,-hopcount,1,-netmask,255.240.0.0,32.224.0.0,32.78.120.254 How this is possible? (1 Reply)
Discussion started by: itik
1 Replies

5. Shell Programming and Scripting

New wrapper script will be developed to wrap two ksh scripts

Hi friend,:) The script should invoke these scripts sequentially! When one will finish the second will start. Please help me with it, thanks,:b: Ishai (3 Replies)
Discussion started by: ishai82
3 Replies

6. Post Here to Contact Site Administrators and Moderators

How was the Gollum Developed?

Can you please tell me how Gollum was created for a forum? I know of the ALICE and other bots but integrating the interface has always been my wish... Can someone give me some pointers on how to achieve this? (2 Replies)
Discussion started by: Legend986
2 Replies
Login or Register to Ask a Question