|
Bug a développé
Les gars il ya un autre bug qui a mis au point ......... messaged maintenant au-dessus de 6 octets sont découpées et l'écho à client.After le premier message que l'écho n'est pas regular.I ont une boucle à la fois dans le client et le serveur pour vérifier closing.Moreover i pour le raccordement à proximité doivent également mettre une autre clause que s'il ya une rupture de connexion, soit serveur ou client de la connexion devrait être fermé à partir d'autres sont side.Below le serveur et côté Clinet codes après connexion
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*/
}
}
Dernière édition par reborg; au 07.23.2007 09:03 AM.. Motif: balises de code
|