- - PR -
Socket.Receiveについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-01 11:14
Visual Studio .NETのSocketクラスを使って通信しているのですが
Socket.Receiveしたときに受信データ(固定長)にばらつきがあります。 調査してみると、送信時にデータが大きいためTCP/IPのほうで分割して送っているようなのですが、分割されたデータの一部が取れていない感じでした。 Socket.Receiveをする前に、受信データの大きさを知ることはできないのでしょうか? 環境 Visual Studio .NET Visual C# | ||||||||
|
投稿日時: 2006-06-01 12:30
受信してはじめて知る事ができるわけだからそりゃ無理でしょ。 あがく場所はそこじゃなくて送信側にあるんじゃないの?
本当に?そんなこと関係なしに指定されたバイトごとしか受信しないはずだが。 受信待ちってどうしてる?接続しっぱなし状態?毎回Listenしてる? | ||||||||
|
投稿日時: 2006-06-01 12:32
元々そう言うものです。 0 を返すまで Receive を繰り返せばいいでしょう。 | ||||||||
|
投稿日時: 2006-06-01 12:49
ぶさいくろう 様 返答ありがとうございます。
説明不足のところがあり申し訳ありません。 >調査してみると、送信時にデータが大きいためTCP/IPのほうで分割して >送っているようなのですが、分割されたデータの一部が取れていない感じでした。 Socketクラスでデータを取得する際には1データになっているのですが、TCP/IPの通信の時には、送信側から受信側に送るときに分割されていました。 送信側 TCP/IP 受信側 1データ→ 複数に分割 → 1データ >本当に?そんなこと関係なしに指定されたバイトごとしか受信しないはずだが。 >受信待ちってどうしてる?接続しっぱなし状態?毎回Listenしてる? 受信待ちは接続しっぱなし状態です。 |
1