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