問題タブ [tftp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 1 つの IP への要求と、同じマシン上の別の IP からの応答
私のマシンが 1 つの IP アドレスで tftp サーバー [Linux マシン] に tftp トラフィックを送信し、別の IP アドレス [tftp サーバー上の 2 NIC] から応答を受信し、その後、転送全体に 2 番目の IP アドレスを使用するトポロジがあります。しかし、[tftp サーバー上で] このルールを構成する方法を知りたいのですが、応答時に2 番目のIP アドレスから送信する必要があります。
IP テーブルとはどのようなルールを構成する必要がありますか? ルートは Linux マシンで構成されていると仮定してください。
java - TFTPClient (Apache Commons Net ライブラリ) を使用してファイルを送信できない
サーバー (AIX OS) にファイルを置くために Apache Commons Net を使用して TFTPClient を作成しようとしています。TFTP サービスはそのサーバーで実行されています。以下のコードの実行中に例外は発生せず、すべて問題ないように見えますが、ファイルがサーバーに配置されませんでした。
上記のコードの出力は次のとおりです。
つまり、すべて問題ありませんが、コードで指定されたディレクトリにファイルが見つかりませんでした。
ご意見をお聞かせください。
tftp - tftp 再試行タイムアウトを超えました
私の問題は、以下に示すように、TFTP 経由でカーネル イメージを Econa プロセッサ ボード (Econa は ARM ベースのプロセッサ) にダウンロードすると、再試行回数が超過することです。
以下は、このエラーの原因を見つけるのに役立つ可能性があるポイントです。
Ping 応答は問題ありません
/li>TFTPが動作していることを確認しようとしたところ、以下のようにしてみました。TFTP サーバーが動作しているようです。小さなファイルを次の場所に置きました
/tftpboot
:それから私はlocalhostをしました
/li>私のマシンにはファイアウォールも SELinux もありません。
これらのファイルの場所が正しいことを確認してください。カーネル イメージ ファイル
bootpImage.cns3420.uclibc
を/tftpbootTFTP
サービス ファイルに配置しました。ファイルは にあり/etc/xinetd.d/tftp
ます。私の TFTP サービス ファイルは次のとおりです。
/li>printenv
U-Boot での応答は次のとおりです。環境サイズ:
437/4092 bytes
よろしくワカス
c++ - boost::UDP async_receive の asio エラー
boost::asio からの奇妙なエラーで問題が発生しています。TFTP サーバーの半分を実装しています (サーバー -> クライアントのみ)。最初のソケットのポート 69 で最初の RRQ パケットを取得し、DATA,ACK 交換を実行する別のソケットを作成します。そのソケットで async_receive() を開始し、データの最初のパケットの send() を実行します。次に、受信用のハンドラー コールバックを取得し (ACK が着信すると想定します)、「ターゲット マシンが積極的に拒否したため、接続できませんでした」というエラーが表示されます。
何にも手を差し伸べていないので、受信呼び出しがどのようにUNREACHABLEエラーを引き起こすのか、私は本当に理解していません。send() の結果を確認しましたが、エラーはありません。
ソケットのローカル エンドポイントとリモート エンドポイント (エラーの前後) を確認したところ、両方に正しい IP アドレスとポートがありました。
何か案は?私はグーグルで検索しましたが、この問題を抱えている人は他に見つかりません。ほとんどの結果がスタックオーバーフローにつながったので、ここで質問します。
編集- 私の問題は、デバッガーを使用していたことです。クライアントが約 1 秒間に 12 のリクエストを送信した後、最初のデータ パケットの送信に取り掛かるまでに、クライアントはタイムアウトしてあきらめ、私のデータは遅すぎました。ブレークポイントなしで実行すると、正常に動作します。アドバイスをくれたみんなに感謝します。手がかりを与えてくれたのは、Wireshark でパケットを監視していたことです。
c++ - Wireshark で見ると、TFTP クライアントからの未知のオペコード
皆さん、今晩は。
#include を使用する C++ での割り当て用の TFTP クライアントの作成に問題があります
私はcharバッファを送信しています:
buffer={'0','2','f','i','l','e','n','a','m','e','0','o' ,'c','t','e','t','0'};
コードの使用:
sendto(sock,buffer,strlen(buffer), 0, (sockaddr *) &serverAddr, sizeof(sockaddr));
しかし、WireShark でこの転送を見ると、パケットの Opcode 部分を見ると、「Opcode: Unknown (12338)」と表示されます。文字列からオペコードを選択したにもかかわらず
私は絶対に立ち往生しています、どんな助けもいただければ幸いです。メッセージを送受信できれば、あとは簡単に処理できると確信しています。
私がしたことをここに投げるだけですが、マークされた答えは基本的にそれでし た
buffer={(BYTE)0,(BYTE)2,'f','i','l','e','n','a','m','e',(BYTE)0, 'o','c','t','e','t',(BYTE)0};
と
sendto(sock,buffer,sizeof(buffer), 0, (sockaddr *) &serverAddr, sizeof(sockaddr));
networking - 「DHCP...PXE E-53 No boot Filename received」タイムアウトが長すぎる
Linux Debian で PXE ブート ネットワークをセットアップしました。これには次のコンポーネントを使用しました。
pxelinux、dhcp3、tftp-hpa
ネットワーク内のすべてのクライアントに対して、/etc/dhcp3/dhcpd.conf でホスト宣言を構成しました。
このホスト宣言では、静的 IP、ゲートウェイ、ブートファイル名 "pxelinux.0"、dns-server を取得します。
この構成は完全に機能します。しかし、クライアントにブート ファイル名を起動させたい場合は、このクライアントのホスト宣言をファイル名オプションで構成しています。このクライアントにファイル名を起動させたくない場合は、ホスト宣言からこの行を削除します。/etc/dhcp3/dhcp.conf で 1 行が編集されるたびに、構成を再解析するために dhcp-server を再起動しています。
これも機能します。ただし、クライアントがファイル名オプションなしで起動すると、ブートファイル名の検索に苦労し (約 30 秒間の出力: "DHCP.......")、PXE E-53: No boot filename received で終了します。
これが、私にはまったく理解できません。このクライアントがそのホスト宣言にバインドされたファイル名オプションを持たない場合、ブート ファイル名の検索になぜそれほど時間がかかるのでしょうか? このブート ファイル名を検索しないようにクライアントに指示する方法はありますか? または、最終的にブート ファイル名を取得するためのタイムアウトを 5 秒未満に設定する方法はありますか? 1 つのホストが何も起動しないのを 1 分以上待つことは、私の環境では絶対的な時間の無駄です。
ありがとうございました!
header - 不明な長さのヘッダーの処理方法(TFTP関連)
それはおそらく他の質問にも関連しています。現在利用可能なほとんどのTFTPクライアントで動作するC(オクテットモードのみ)で単純なTFTPサーバーを構築する必要があります(サーバーを実装するだけで済みます)。
しかし、問題があります。RRQ/ WRQパケットには、不明な長さのフィールド「ファイル名」(および「モード」)があります。サーバーは汎用である必要があるため、このオプションを実装するにはどうすればよいですか?途方もなく大きなバッファを作成し、recvfrom()が0を返すまで待ちますか?
ありがとう!
android - IP が変更されると、ポートはどうなりますか?
ポート 8080 で小さな TFTP サーバーを実行しています。これは Android アプリケーションです。イーサネットに接続しているときに接続しようとすると、シームレスに動作します。ただし、イーサネットからWifiに切り替えると。「接続拒否」エラーが発生します。または、最初のページが表示されてからナビゲートしようとすると、同じエラーでクラッシュすることがあります。では、IP が変更された場合はどうすればよいでしょうか。TFTP サーバーを再起動する必要がありますか?
ありがとう
c++ - tftpクライアントがサーバーから受信していません(間違ったポートに送信してください)
私は自分のTFTPクライアントを書いています。クライアントはc++(part wise c)で書かれており、UNIXシステム(Linux Debian安定版)で実行されます。
これが私の問題です:
読み取り要求(RRQ)をTFTPサーバー(Windows XPではTFTPサーバーを開く)に送信できます。TFTPサーバーはRRQを受信しますが、応答を送信できません。
サーバー側で次のメッセージが表示されます:クライアント192.168.1.110:55239 C:\ OpenTFTPServer \ test.txt、通信エラー
ただし、ポート55239は、TFTPクライアントで定義したポートではありません。
これが私のコード部分です:
クライアントとサーバーのアドレスを設定します。
/li>接続してバインド:
/li>TFTP要求を作成します。
/li>TFTP要求を送信します。
/li>
これが私の質問です:
TFTPサーバーが間違ったポートを受信するというのは何が間違っているのでしょうか。cliaddr.sin_port = htons(cliport);で設定する必要があると思いました。
あなたの助けをありがとう&リコよろしく
答え:
私の問題は、間違ったソケットと間違ったアドレス構造体を組み合わせたことでした
これが私の動作するコード部分です:
ソケットを作成します。
/li>クライアントとサーバーのアドレスを設定します。
/li>接続してバインド:
/li>TFTP要求を作成します。
/li>TFTP要求を送信します。
/li>データの受信:
/li>
c - tftp を使用してファイルをアップロードできないのはなぜですか?
スタックサイズを維持するために、複数回の繰り返しでファイルをアップロードするときに、毎回接続を確立する必要がありますか?
calloc failed エラーが発生しました。
マルチスレッドでfreertosを使用しています。