Re: データの受信について ( No.1 ) |
- 名前:ライブラリ使用者 日時:2008/02/02 22:16
「通信データ型」でここの掲示板の検索してみてください。
|
Re: データの受信について ( No.2 ) |
- 名前:M 日時:2008/02/02 23:49
ご返答ありがとうございます。
指摘されたスレッドはすでに確認ずみなのですが
私が行いたいのは複数のタイプのデータを送信、ではなく、
送信されてきたデータを受信し、バッファから削除する前に
新たなデータが送信され、つながってしまっている状態から
うまく分割、もしくは一つ一つ受信にしたいです。
*例
・クライアントがチャットを送信と同時に移動した場合
クライアント >送信> "[マップ移動情報]"
クライアント >送信> "[チャット情報]"
サーバーが[マップ移動情報]を受信し、
バッファから削除する前に[チャット情報]が送信された。
サーバー <受信< "[マップ移動情報][チャット情報]"
と受信されてしまいます。
|
Re: データの受信について ( No.3 ) |
- 名前:ライブラリ使用者 日時:2008/02/03 00:08
「通信データ型」のNo10からお読みください。
(No10で自分も同じ嵌り方をした質問をしています。
ってそうなることが仕様という事はご存知と。。。
なら一例としては同No11に管理人さまがサンプルソースを記載しています。
または「通信待ち」を確認してみてください。
上記にいくつかサンプルが載っていますが、考え方は同じです。
・データ1、2、3それぞれのデータサイズをまず受信側が知る必要があります。(データ内にサイズも含めることで解決する
・NetWorkRecvで指定サイズのデータのみ受信する
・指定サイズ分、全受信データをシークさせる
これを繰り返すです。
もうちょい具体的に
送信
Send1[10]
Send2[10]
Send3[10]
受信
Recv[30]
Recv[0]から10バイト分を取得する→データ1
Recv[10]から10バイト分を取得する→データ2
Recv[20]から10バイト分を取得する→データ3
です
|
Re: データの受信について ( No.4 ) |
- 名前:M 日時:2008/02/03 01:11
迅速なご返答感謝します。
ただ今回は送信されるデータ数が未知数、データサイズも未知数ということを記入しわすれました。。。
申し訳ないです。。
ライブラリ使用者さんの考えを元にしてなんとか解決できました!
とりあえずデータに区切りをつけ、受信側で個数とそれぞれの内容を区切りで取り出し、
その個数分だけそれぞれの内容をFOR文でケース分けしていく、
という形にまとまりました。
もっと効率的な方法があればいいのですが、
現在の私の思考ですとこれが精一杯です。。
ここでつまっていたので感謝します。ありがとうございました。
|
Re: データの受信について ( No.5 ) |
- 名前:ライブラリ使用者 日時:2008/02/03 15:54
一応。
>データ数が未知数、データサイズも未知数
データ数は問題ないかと思いますが、データサイズは問題ありな気がしますよ。
>データに区切りをつけ
これは例えば、0をX個連続させるなどで区別するということだと思うのですが、データが未知数である場合、もしその区切りと同じデータが含まれた時に誤作動の元となります。
|