ネットワークプログラミング相談室 Port16
■ このスレッドは過去ログ倉庫に格納されています
0086デフォルトの名無しさん
2006/01/16(月) 01:55:57WinSockのVer2.2で、RAWソケットを用いたファイルの
送信ツールを作成しています。
>>6の一番下のリンク先のIP PACKET MAKERのIP,UDPをそのまま利用
して、送信するものをファイルから読み込ませるようにしました。
しかし、送信するファイルが大きいと、途中でエラーが発生してしまいます。
「途中」というのは次のような様子です。単位はバイトです。
パケット長 1000 ファイルサイズ 4721898 送信バイト 2266000
パケット長 1200 ファイルサイズ 4721898 送信バイト 2360400
パケット長 1000 ファイルサイズ 292739076 送信バイト 148693000
またエラー発生箇所は、
make_udp_packet(&pPacket_udp->udp, src_ip, m_Sport, dst_ip, m_Dport, PacketLen-20, data_buf);
という、udpソケット生成関数内の
(make_udp_packet(struct udp* udp, UINT src_ip, USHORT src_port, UINT dst_ip,
USHORT dst_port, USHORT len, char* read_buf)
という形式の関数です。)
wsprintf((LPTSTR)udp->udp_data, read_buf); //ソケットデータ部にデータ書き出し
という部分のようです。もちろんこの前のほうが原因かもしれません。
わかりにくい説明だと思いますが、何かわかる方いましたら
よろしくお願いいたします。
ちなみに、IPレベルもいじれるファイル送信ツールを作ろうとしています。
そのようなツールをご存知ならば教えてください
■ このスレッドは過去ログ倉庫に格納されています