![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| SugarCRM CEO John Roberts vertelt ons hoe zijn bedrijf ontwikkeld (video) | iBot | UNIX en Linux RSS Nieuws | 0 | 04-18-2008 05:30 PM |
| Nieuwe wrapper script zal worden ontwikkeld om wrap twee ksh scripts | ishai82 | Programmeren en Shell Scripting | 3 | 03-17-2008 04:45 |
| Hoe was de Gollum ontwikkeld? | Legend986 | Post Hier Contact Site Administrators en Moderators | 2 | 12-09-2007 08:37 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Bug heeft ontwikkeld
Jongens er is nog een insect dat zich heeft ontwikkeld ......... nu messaged boven de 6 bytes worden bijgesneden en terug weerklonk op de eerste boodschap van de echo is niet regular.I client.After hebben een lus gelegd in zowel client en server om te controleren of closing.Moreover voor i-verbinding dicht moeten ook naar een andere clausule dat, als er een verbinding breuk in een server of client de verbinding moet worden gesloten van andere side.Below zetten zijn de server en Clinet kant codes na aansluiting 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*/
}
}
Laatst bewerkt door reborg; op 07.23.2007 09:03.. Reden: code tags |
|
||||
|
Zeer eerste verzoek, gebruik dan code tags Code:
n = read(newsockfd,buffer,1024);/*read from client*/
if (n < 0) perror("\n ERROR reading from socket \n");/*check for errors*/
Waarom wil je hier blijven, zelfs na een fout? (Na perror) Wilt u doorgaan, zelfs als n \u003d\u003d 0 Code:
if(k==0) break; break; Betekent dat, ongeacht de waarde van 'breken k'. Waarom is dat deel van de code? Alles specifieke hier? Code:
if(j==0)
{
close(newsockfd);
close(sockfd);
exit(0);
}
Parent niet te wachten op het kind in te vullen Code:
write(newsockfd,"\n Client wrote",14);/*write to client*/ Flusing vóór schrijven en niet daarna. Code:
n=write(newsockfd,buffer,sizeof(buffer));/*write to client*/
if(n<0)perror("Write Failed");
}
Hetzelfde patroon waar het blijft, zelfs na verwerking schrijven oproep geeft een negatieve waarde Code:
gets(buf); Deze functie zou niet controleren geen bufferoverloop. proberen fgets gebruiken.
|
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|