• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッファの要素を消去する)

バッファの要素を消去する方法とは?

このQ&Aのポイント
  • バッファの要素を消去し、繰り返し使用する方法について知りたいです。
  • recv_bufferというバッファの要素を消去して、再度使用したいです。
  • 前に書き込んだ文字列を消去して、プログラムを正常に動作させたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

指定方法がおかしいのでは? size = in.read(recv_buffer); で recv_buffer の 0 から size - 1 まで上書きされます。 new String(recv_buffer, 0, size) などのように使用すれば、不要なデータは付着してきませんよ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Oracle バッファ領域について

    Oracleでユーザをエクスポートした際に、ストアドプロシージャのところで、 ORA-01406 取り出された列の値は切り捨てられました というエラーが出ました。 これはプログラム・バッファ領域が文字列全体を格納するために十分な大きさではない、という意味らしく、対処として、最大列値を保持できるよう列のバッファ領域を増やす必要があるようです。 具体的に何をすればいいのか、上の説明ではよくわかりませんでした。 (結局そのバッファ領域はどこで設定するのか等) 詳しい方がいれば、お教えください。 よろしくお願い致します。

  • C言語でのネットワークプログラミング

    現在Linuxを用いてC言語でTCP/IPのサーバ、クライアントプログラムを作成しています。 sendとrecvの正しい使い方がわかっておりません。 一度のrecvですべてのデータを受け取れないことはわかっているのですが、どのように記述するのが良いのでしょうか。1バイトずつrecvするのは大間違いであると何処かのサイトで読みました。 ・現在の仕様 サーバがデータの文字列をsendで送ってくる クライアントはrecvで1バイト読み込みを繰り返し、配列に格納し、\0を見つけるとループを抜ける recvした文字列を画面表示 表示したあとはrecvに戻る

  • 変数のタイプ

    Active Basicを使ってプログラムを書いています。 そのときに、変数というものがいまいち理解できなく、感覚で適当にしてしまいます。 たとえば、ファイルをを開くのダイアログボックスでファイルパスを取得するとき、Active Basicの本では、その文字列を格納するのに、 『Byte』を使っていました。 Dim buffer[MAX_PATH-1] As Byte といった風です。 しかし、本には、 バイト数:1 値の範囲:0~255 と書いてあります。 文字列を取得する場合はStringを使うのではないでしょうか? Byteでも、文字列を格納できるのでしょうか? 他にも、LongやDWordやIntegerやSingle、Dobleといったものがありますが、どう使い分けていいのかがわかりません。 すみませんが、分かる方、いらっしゃいましたらご教授願えませんでしょうか?

  • SSL_read

    GmailnBytesRead = SSL_read( ssl, // socket gbufRecv, // buffer sizeof(gbufRecv)-1 // max len to read //はみだしそう -1 付けた ); // recv flags SSL_read() での、読込バッファ(gbufRecv)の大きさは普通どのくらいでしょうか? よろしくお願いいたします。

  • CGI.pmでファイルアップロードする際のバッファのサイズの制限はありますか?

    CGI.pmを使用してファイルのアップロードを行う際に、 while(read($file_name, $buffer, 1024)){ $file .=$buffer; } のような形で「1024」バイトずつファイルを読み込みますが、 この「1024」に入る数字に制限はあるのでしょうか? たとえば「20480」バイトずつ読み込む場合など・・・ このバッファサイズにより何か影響がでるようなことがあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • ソケットプログラミング

    こんにちは。 ソケットプログラミングを勉強していて、音声を送りあえるIP電話らしきものを作ろうとしています。音声のやりとりは何とかできていますが、同時に文字列も送れるようにしたいです。ソケットをもう一つ作ればいいのではないかと思っていますが、実際に書いてみると、recv()の部分がうまく書けません。 音声データの送受信の部分は: while(1){ n=recv(sock,data1,N,0); //受信 if (n== -1){perror("recv");exit(1);} if(write(dsp, data1,n)==-1){perror("write"); exit(1);} //スピーカーから出力 n=read(dsp,data,N);  //マイクから入力 if (n== -1){perror("read");exit(1);} if(send(sock,data,n,0)==-1){perror("send");exit(1});} //送信 } 送信の時は n=read(0,tdata_2,N); send(sock_2,data_2,n,0); のように標準入力から文字列を読み込んで、data_2に格納し、新しく作ったソケットsock_2で送ればいいのですが、受信の時はどうしたらいいでしょうか。recv()をつかって、文字列と音声のデータを違うソケットで受け取って、違う配列に格納する方法があるでしょうか。 つまり、このような感じ(?): n1=recv(sock1,data1,N,0); //音声 n2=recv(sock2,data2,N,0); //文字列 とても悩んでますので、よろしくお願いします!!

  • APIについて

    文字列をsjisからjisに変換して、 byte型に格納しているのですが dim data() as byte data()をapi関数に渡しているのですが、 apiに渡すときに、apiでの定義は bdata as byte となっていて、バッファを送信するとあります。 この場合、渡す方法としては、data()の配列数分のloopを 行い、1つずつ渡していく方法になるのでしょうか? よくわからない質問かも知れませんが、ご存知の方がいらっしゃいましたらよろしくお願いします。

  • 抜け落ちている番号を取得する方法(Winsock利用)

    こんにちは。 A→Bというように、 送信端末Aから受信端末Bへパケットを送信する際に、sprintf関数を用いて、各送信パケットに対してナンバリングを行っています。 そして、受信端末において取得することができた番号と抜け落ちている番号を取得したいと思っています。 以下に、プログラムの概要を示します。 [送信側] char send_Buff[1500]; int sequence_Num = 0; //シーケンス番号のカウントアップ sequence_Num++; //sprintf関数にて、文字列格納 sprintf(send_Buff,"%d\0",sequence_Num); sendto関数を使用し、送信 [受信側] recv_Buf[1500]; int x; unsigned int count = 0; recvfrom関数にて送信端末からのパケットを受信し、recv_Bufに格納 count++; //recv_Bufの先頭要素からナル文字までを走査し、ナル文字をみつけたらナル文字の手前の要素までをreceive_seq_Numに格納 for(x=0;recv_Buf[x]!='\0';x++){  receive_seq_Num[count][x] = recv_Buf[x]; } 上記プログラムのように、記述したのですが・・・ [分からない点] 受信側にて、受信することができた各パケットのシーケンス番号のみを配列内に格納したいのですが、上記の記述方法で可能でしょうか? また、配列内に格納したシーケンス番号から抜け落ちているシーケンス番号を割り出したいのですが、どのような記述方法がありますでしょうか? 受信シーケンス番号;1,2,3,4,5,7,10,11,20,21,22・・・ 抜け落ちているシーケンス番号:6,8,9,12,13,14,15,16,17,18,19 ということです。 よろしくお願いします。

  • java でソケット通信をするとき

    javaでソケット通信をするとき、 //データ受け取り byte[] buffer = new byte[2048]; try { int size = 0; while (size <= 0) { size = is.read(buffer); } receiveStr = new String(buffer, 0,size, "UTF8"); } catch (IOException e) { e.printStackTrace(); } のようにしていますが、これだと文字数にして一度におくれる容量はどのくらいでしょうか? また、それらを増やすにはどうしたらいいでしょうか?

    • ベストアンサー
    • Java
  • URLクラスでのリード時のバッファサイズについて

     URLクラスでインターネットアクセスするときに、以下のようにプログラムする場合、望ましいBUFSIZEはあるのでしょうか。  inputstream.read(byte_buf,offset,BUFSIZE) A  プログラマーは任意のバッファサイズを指定して、なんら問題はない。  仮に1であっても、実際はJavaのほうでネットアクセスするに最適なサイズでアクセスし、そこから1バイトずつくれるので問題はない。同様にして、メモリの許す限りに大きいバッファサイズも問題はない。 B  Javaはコーディングどおりに、サーバーに1バイトを要求するので、ファイルダウンロードする方法としてとんでもないことだ。同様にして、一度に何十メガバイトもの指定もとんでもないことだ。    AとBで、どちらが正しいでしょうか。Bならば、のぞましいバッファサイズと、その根拠を教えてください。通常、ダウンロードするときのネットマナーみたいなものはあるのでしょうか。

    • ベストアンサー
    • Java