|
Bug har utvecklat
Killar det finns en bugg som har utvecklats ......... nu messaged över 6 byte trimmas och ekade tillbaka till client.After det första meddelandet ekot inte regular.I har lagt en slinga i både klient och server önskelista closing.Moreover for i nära anslutning också behovet av att få ytterligare en klausul att om det finns ett samband brott i vare sig server eller klient anslutningen bör stängas från andra side.Below är servern och clinet koder sida efter anslutningen
Server
Kod:
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");
}
Klientsidan
Kod:
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*/
}
}
Senast redigerad av reborg; 07-23-2007 at 09:03.. Anledning: code-taggar
|