• 締切済み

Winsock 受信について

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

みんなの回答

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>希望としましては、1データ送信に対して1データ受信が望ましいのですが。 >実際のデータには全角はある為、このような希望となりました。 >もしかして、不可能なのでしょうか。 TCPはストリーム(連続したデータ)ですので、その上で走らせるプロトコルレベルで「1データ送信」の区切りを決めないと無理です。 たとえば、ファイルに複数回のデータを書き込んで、1024バイトにしたとします。 読み込む時に決め事なしの状態で、書き込んだ時と同じデータサイズの読み込みができるか?というのと同じことになります。 http://www.kt.rim.or.jp/~ksk/wskfaq-ja/intermediate.html の「3.4 - TCPのようなストリームプロトコルで、パケット単位の処理を強制するための正しい方法は?」とか。

参考URL:
http://net-newbie.com/tcpip/tcp/tcp-intro.html
GONBEBW
質問者

お礼

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

関連するQ&A