![]() |
|
|
Googleのunix.com
|
|||||||
| 高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| SugarCRMのCEOのジョンロバーツ氏は、自身の会社(ビデオ)を開発会社に指示 | アイボット | UNIXおよびLinuxのRSSニュース | 0 | 2008年4月18日 05:30午後 |
| ラッパースクリプトksh新しい2つのスクリプトをラップするために開発される | ishai82 | シェルプログラミングとスクリプティング | 3 | 2008年3月17日 04:45午前 |
| ゴルムはどのように開発されたものですか? | Legend986 | ポストお問い合わせサイト管理者とモデレーターここを | 2 | 2007年12月9日 08:37午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
バグを開発している
みんなが現在開発している......... 6バイト以上のメッセージで、別問題であることをトリミングされ、再びregular.Iエコーされていない最初のメッセージをエコーclient.Afterクライアントとサーバーの両方でループしてきたclosing.Moreoverの接続を閉じる私はまた、別の条項がある場合のいずれかのサーバーまたはクライアントの接続での接続をブレークされ、他のside.Below閉じる必要がありますする必要があるから確認するには、サーバー側のコードを接続後にしているとクリネ サーバー コード:
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");
}
クライアント側 コード:
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*/
}
}
編集reborgで最終; 2007年7月23日に 09:03午前..理由:コードタグ |
|
||||
|
非常に最初のリクエストコードタグを使用してください コード:
n = read(newsockfd,buffer,1024);/*read from client*/
if (n < 0) perror("\n ERROR reading from socket \n");/*check for errors*/
なぜここにはエラーの後も継続するのですか? perror ( )の後 続行しますかÑ \u003d\u003d 0の場合でも コード:
if(k==0) break; break; 場合は関係なく'の値のK 'を破ることを意味します。そして、なぜその部分のコードは何ですか?何もここに、特定のですか? コード:
if(j==0)
{
close(newsockfd);
close(sockfd);
exit(0);
}
親は子供が完了するのを待っていない コード:
write(newsockfd,"\n Client wrote",14);/*write to client*/ 書面ではなく、それ以降にFlusing 。 コード:
n=write(newsockfd,buffer,sizeof(buffer));/*write to client*/
if(n<0)perror("Write Failed");
}
同じパターンの後に、負の値を返すの書き込みが呼び出しても処理を続行 コード:
gets(buf); この関数は任意のバッファオーバーランのチェックはない。 fgetsを使用するようにしてください。
|