HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1207
名前無しpcbnet2で連続受信してしまう1未解決


名前無し

リンク

2006/12/7(Thu) 23:23:11|NO.4045

こんにちは
オンラインゲームをつくろうとしてるのですが
文字列よりバイナリデータの方が軽いとおもったので
pcbnet2で tcpsend tcprecv でバイナリデータを送受信しようとおもったのですが
tcprecvがくるまえにtcpsendで2回送信されてしまうと
tcprecvで受信したバッファにその2回分が連続して書き込まれてしまうんです
そのため処理がうまくいきません
なにかよい方法はないでしょうか



この記事に返信する


kanzaki

リンク

2006/12/8(Fri) 01:01:14|NO.4046

そういう状況においても、
対処できるような作りこみを行う必要がありそうです

同期する方法

クライアントからデーター送信 サーバーに受信 サーバーから受信完了メッセージを送信 クライアントは受信完了メッセージを受け取るまで次のメッセージは送信しない

という方法か

同期しない方法

送信するデーターに、 識別用の通し番号など識別用データー を付けて送信し、受け取り側でそれにあった処理を行う

というような方法でどうでしょうか?

同期する方法は、しないほうに比べて遅いでしょう。

同期する場合、最初にデーターのサイズを宣言しておくと
どの時点で受け取り完了のメッセージを送信するべきなのか
作りやすいでしょう。


同期しない方法の場合は、自分でプロトコルを作るようなものです。
データーの最初に、データーのサイズを宣言しておくと、
区切りを明確化できると思います。
識別用の番号の生成方法は完全な通し番号で付ければ良いですが、
どこかで0に戻すルーチンや、
未解決のデーター番号を削除すると機構もあるべきでしょう



ONION software Copyright 1997-2023(c) All rights reserved.