アプリ版:「スタンプのみでお礼する」機能のリリースについて

Winsockをサーバとクライアントで動かして送受信についてです。
サーバでSendDataで送信、クライアントでGetDataの所です。

サーバーでSendDataを数回送信するとクライアントのGetDataではある程度まとめて受信します。

(1)サーバ側で送信
   Winsock.SendData "aaaaa"
   Winsock.SendData "bbbbb"
   Winsock.SendData "ccccc"
   Winsock.SendData "ddddd"

(2)クライアントで受信
   Winsock.GetData xyz

(1)のように送信した場合、(2)のxyzは
   ・aaaaabbbbbcc
   ・cccddddd
のように数回に分けて受信されます。

希望としましては、1データ送信に対して1データ受信が望ましいのですが。
実際のデータには全角はある為、このような希望となりました。
もしかして、不可能なのでしょうか。
わかる方、教えて下さい。

A 回答 (1件)

>希望としましては、1データ送信に対して1データ受信が望ましいのですが。


>実際のデータには全角はある為、このような希望となりました。
>もしかして、不可能なのでしょうか。

TCPはストリーム(連続したデータ)ですので、その上で走らせるプロトコルレベルで「1データ送信」の区切りを決めないと無理です。

たとえば、ファイルに複数回のデータを書き込んで、1024バイトにしたとします。
読み込む時に決め事なしの状態で、書き込んだ時と同じデータサイズの読み込みができるか?というのと同じことになります。

http://www.kt.rim.or.jp/~ksk/wskfaq-ja/intermedi …
の「3.4 - TCPのようなストリームプロトコルで、パケット単位の処理を強制するための正しい方法は?」とか。

参考URL:http://net-newbie.com/tcpip/tcp/tcp-intro.html
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

お礼日時:2013/03/25 09:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!