问题标签 [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 - 请求一个 IP 并从同一台机器上的另一个 IP 回复
我有一个拓扑,其中我的机器将 tftp 流量发送到一个 IP 地址上的 tftp 服务器 [linux 机器],并从另一个 IP 地址 [tftp 服务器上的 2 个 NIC] 接收回复,然后使用第二个 IP 地址进行整个传输。但我想知道如何配置这个规则[在 tftp 服务器上],当它回复时,它应该来自第二个IP 地址。
我需要配置什么样的规则是IP表吗?请假设路由是在 linux 机器上配置的。
java - 无法使用 TFTPClient 发送文件(Apache Commons Net 库)
我正在尝试使用 Apache Commons Net 创建 TFTPClient 以将文件放在服务器(AIX OS)上,并且 TFTP 服务正在该服务器上运行,运行以下代码时没有引发任何异常,似乎一切正常,但是文件没有放在服务器上。
上述代码的输出是:
这意味着一切正常,但我没有在代码中指定的目录中找到该文件。
请指教。
tftp - 超过 tftp 重试超时
我的问题是当我通过 TFTP 将内核映像下载到 Econa 处理器板(Econa 是基于 ARM 的处理器)时,重试次数超出,如下所示
以下是可以帮助您找到此错误原因的要点。
Ping 响应正常
/li>当我尝试验证 TFTP 是否正在运行时,我尝试如下所示。似乎 TFTP 服务器正在工作。我放了一个小文件
/tftpboot
:然后我做了本地主机
/li>请注意,我的机器上没有防火墙或 SELinux。
请验证这些文件的位置是否正常。我已将内核映像文件
bootpImage.cns3420.uclibc
放在/tftpbootTFTP
服务文件中,位于/etc/xinetd.d/tftp
.我的 TFTP 服务文件是:
/li>printenv
U-boot 中的响应是:环境尺寸:
437/4092 bytes
问候瓦卡斯
c++ - UDP async_receive 的 boost::asio 错误
我遇到了来自 boost::asio 的奇怪错误的问题。我正在实现 TFTP 服务器的一半(仅限服务器-> 客户端)。我在第一个套接字上的端口 69 上获得第一个 RRQ 数据包,然后创建另一个套接字来执行 DATA、ACK 交换。我在该套接字上启动 async_receive(),然后对第一个数据包执行 send()。然后我得到接收的处理程序回调(我假设 ACK 进来),它给出了错误“无法建立连接,因为目标机器主动拒绝了它”,我从另一个线程理解这里意味着 ERROR_PORT_UNREACHABLE。
我真的不明白接收呼叫如何导致 UNREACHABLE 错误,因为我没有接触任何东西,我正在接收。我检查了 send() 的结果,那里没有错误。
我检查了套接字中的本地和远程端点(在错误之前和之后),它们都有正确的 IP 地址和端口。
有任何想法吗?我用谷歌搜索,找不到其他人有这个问题。大多数结果导致我使用stackoverflow,所以我在这里问。
编辑—— 我的问题是我正在使用调试器。当我开始发送第一个数据包时,客户端在大约一秒钟内发送了十几个请求后,客户端超时并放弃了,我的数据来不及了。当我在没有断点的情况下运行时,它工作正常。感谢大家的建议。正是观察 Wireshark 中的数据包给了我线索。
c++ - 在wireshark中查看时来自TFTP客户端的未知操作码
大家晚上好。
我在为使用 #include 的 C++ 分配创建 TFTP 客户端时遇到问题
我正在发送 char 缓冲区:
缓冲区={'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 中查看此传输时,当我查看数据包的操作码部分时,它会显示“操作码:未知 (12338)”。即使它已经从字符串中选择了操作码
我完全被困住了,任何帮助将不胜感激。我很确定如果我可以发送和接收消息,我可以很容易地处理其余的。
只是在这里丢下我所做的,但标记的答案基本上是它 使用了来自 winsock2 的 BYTE(不知道我是否需要,但安全总比抱歉好)
缓冲区={(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 未收到启动文件名”超时时间过长
我在 Linux Debian 下建立了一个 PXE-boot 网络。我为此使用了以下组件:
pxelinux, dhcp3, tftp-hpa
对于我网络中的每个客户端,我在 /etc/dhcp3/dhcpd.conf 中配置了一个主机声明。
在此主机声明中,他们将获得:静态 IP、网关、引导文件名“pxelinux.0”、dns-server
此配置完全有效。但是,当我希望客户端启动引导文件名时,我正在使用文件名选项配置此客户端的主机声明。当我不希望这个客户端启动文件名时,我将从它的主机声明中删除这一行。每次在 /etc/dhcp3/dhcp.conf 中编辑一行时,我都会重新启动 dhcp-server 以重新解析配置。
这也有效。但是当客户端在没有文件名选项的情况下启动时,它会努力搜索启动文件名(输出大约 30 秒:“DHCP.......”)并以 PXE E-53 退出:未收到启动文件名。
这是我完全不明白的。当这个客户端没有绑定到它的主机声明的文件名选项时,为什么要花这么长时间来搜索引导文件名?有没有办法告诉这个客户端不要搜索这个引导文件名?或者最终有没有办法将获取启动文件名的超时设置为小于 5 秒?在我的环境中,等待超过 1 分钟以启动一台主机绝对是浪费时间,这就是我问的原因。
谢谢!
header - 如何处理未知长度的标头(TFTP 相关)
它可能也与其他问题有关。我需要用 C 语言(仅八位组模式)构建一个简单的 TFTP 服务器,它可以与当今可用的大多数 TFTP 客户端一起使用(我只需要实现服务器)。
但我遇到了一个问题:RRQ/WRQ 数据包有一个未知的长度字段“文件名”(和“模式”)。因为我的服务器需要是通用的,我该如何实现这个选项?创建一个大得离谱的缓冲区并等到 recvfrom() 返回 0?
谢谢!
android - IP更改时端口会发生什么?
我在端口 8080 上运行了小型 TFTP 服务器。它是一个 Android 应用程序。当我在以太网上尝试连接它时,它可以无缝运行。但是,当我从以太网切换到 Wifi 时。我收到“连接拒绝”错误。或者有时它会显示第一页,然后当我尝试导航时,它会因同样的错误而崩溃。那么,如果IP发生变化,我需要做什么?我需要重新启动 TFTP 服务器吗?
谢谢
c++ - tftp 客户端未从服务器接收(发送到错误的端口)
我正在编写自己的 TFTP 客户端。客户端是用 c++ 编写的(部分是 c),并在 unix 系统(Linux Debian stable)上运行。
这是我的问题:
我可以将我的读取请求 (RRQ) 发送到 TFTP 服务器(在 Windows XP 上打开 TFTP 服务器)。TFTP 服务器收到 RRQ,但不能发送应答。
在服务器端我看到这条消息:Client 192.168.1.110:55239 C:\OpenTFTPServer\test.txt, Communication Error
但是端口 55239 不是我在 TFTP-Client 中定义的端口。
这是我的代码部分:
设置客户端和服务器地址:
/li>连接和绑定:
/li>创建 TFTP 请求:
/li>发送 TFTP 请求:
/li>
这是我的问题:
我在做什么错,TFTP 服务器接收到错误的端口?我认为它应该设置为 cliaddr.sin_port = htons(cliport);
感谢您的帮助和问候 Rico
回答:
我的问题是,我将错误的套接字与错误的地址结构组合在一起
这是我的工作代码部分:
创建套接字:
/li>设置客户端和服务器地址:
/li>连接和绑定:
/li>创建 TFTP 请求:
/li>发送 TFTP 请求:
/li>接收数据:
/li>
c - 为什么无法使用 tftp 上传文件?
是否需要在多次迭代中每次上传文件时都建立连接以保持堆栈大小?
我得到了一个 calloc 失败的错误。
我正在使用带有多线程的freertos。