
No.5ベストアンサー
- 回答日時:
>例えば、クライアント側が1000バイトのデータを送信した時にサーバー側では100%成功するとして、1000バイトを一発で受信できるのでしょうか?
環境に依存するのか?
というのは実際に確認していませんが……
参考URLによると、約64KBくらいは送れる…ようです。
ただし、大きいサイズのUDPパケットにした場合、途中で1バイトでもデータが化けると全て破棄されてしまいますが。
# TCPだと再送…でしょうね。
下位レイヤーのEhternetパケットサイズくらいにしておくのが、精神的に安心かも知れません。
# 参考URLによると、IPパケットレベルで分断したとしても大丈夫…らしいですが……試したことはありません。
まあ、ケータイとか使っていた場合だとパケットサイズがEhternetのパケットより小さい…場合もあるかも知れませんが。
# 課金の際に使われるパケットサイズがソレに相当するのかどうかは不明…。
参考URL:http://www.atmarkit.co.jp/fwin2k/network/baswinl …
No.4
- 回答日時:
>続きのデータを受信するにはどうしたらよいのでしょうか?
TCPと同じようにストリームになるように処理すればいいです。
送信するUDPのデータ部にシーケンス番号とかの情報を付与して受信済みだったら破棄する。
順番が入れ替わっていたら正しい位置に読み込むように処理する。
ある程度待ってもデータが受信できなかったら送信元に再送を要求する。
とかいう処理を組みます。
つまりTCPの再実装をすればいいのです。
# だったらTCP使った方がマシですが、要求がUDPでは仕方ないかと。
この回答への補足
例えば、クライアント側が1000バイトのデータを送信した時にサーバー側では100%成功するとして、1000バイトを一発で受信できるのでしょうか?
補足日時:2013/04/18 13:40No.3
- 回答日時:
そもそも…
>while( RecvSize < TotalSize )
>{
>----RecvSize += recvfrom();
>}
コレで続きのデータが受信できる保証は全くありませんよ。
別の経路を通ってきた同じデータかも知れませんし、
前後が入れ替わっているかも知れません。
また、どっかのルータで破棄されてしまっているかも知れません。
UDPはそういうプロトコルです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UDPの送信確認
-
UDPでマルチスレッドは可能か
-
ワード ある日突然 文書の表...
-
wordの文書をPC画面中央に表示...
-
クリープを入れないコーヒーな...
-
エクセルの列と行の見出しが小...
-
社内ネットワークで、ログアウ...
-
2台のPCでRS-232C接続でファイ...
-
自宅でのパソコン
-
データを書き込んだCDやDVDにコ...
-
ウェブサーバの統計で、リクエ...
-
FTPソフト filezillaのキューフ...
-
PC版イース9について
-
Word2000(未だに2000)、1画面に...
-
新しく出来たものなのに、使い...
-
NTT フレッツVPNワイドで通信が...
-
ビデオソフト
-
DMMの動画が再生できない。。
-
Excel で、都道府県別一覧表を...
-
外部のPC(たとえば学校)から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
高速シリアル通信での大容量の...
-
イーサネットにIPアドレスは必...
-
ソケット通信を使ってimageデー...
-
Winsock 受信について
-
UDPでマルチスレッドは可能か
-
パリティビットはわかるけど、...
-
シリアル通信でのデータ分け
-
WinsockによるUDP通信にて
-
同期速度とは
-
データ盗聴で何がわかるのか?
-
セル、データグラム、パケット...
-
TCP/IP通信3ハンドシェイクにつ...
-
TCP/IPのデータ送受信の"確実性...
-
オーバーヘッド、end to end delay
-
UDPの送信確認
-
パケットキャプチャについて
-
ワード ある日突然 文書の表...
-
wordの文書をPC画面中央に表示...
-
クリープを入れないコーヒーな...
-
PC版イース9について
おすすめ情報