草庐IT

c# - 如何在不重新启动进程的情况下重新启动与发回重置数据包的 FTP 服务器的通信?

我们有一个(长期运行的)Windows服务,除其他外,它使用FtpWebRequest定期与嵌入在第三方设备上的FTP服务器通信。这在大多数情况下都很好用,但有时我们的服务会停止与设备通信,但只要您重新启动我们的服务,一切都会重新开始。我花了一些时间使用MCVE(包括在下面)对此进行调试,并通过Wireshark发现一旦通信开始失败,就没有网络流量流向外部FTP服务器(根本没有数据包显示流向该IPWireshark)。如果我尝试从同一台机器上的另一个应用程序(如Windows资源管理器)连接到同一个FTP,一切正常。在一切停止工作之前查看数据包,我看到来自设备的设置了重置(RST)标志

sockets - Azure VM TCP 空闲超时

我在AzureVM上设置FTP服务器时遇到问题。在正常使用中,服务器运行良好。通过被动FTP连接传输大文件会出现问题。设置FTP-Server软件是一个FileZilla服务器。AzureVM终结点、Windows防火墙和Filezilla配置为使用端口10000-10009进行被动连接。客户端是第3方设备。问题在持续时间超过4分钟的大文件传输中,连接会出现空闲超时。我找到了一个Microsoft博客条目,其中写道:“当FTP传输大文件时,传输耗时可能会超过4分钟,特别是如果VM大小为A0。任何时候文件传输超过4分钟,AzureSLB都会使空闲TCP超时/21连接,这会导致在传输所有数

java - 用于 Java 客户端/服务器应用程序的 HTTP 或 FTP

我正在尝试编写一个Windows客户端-服务器版本控制应用程序。我创建了两台服务器,一台使用java套接字(java.net库)来处理来自客户端的请求(登录、注册和...)。另一台服务器运行在FTP协议(protocol)上(使用apache通用网络库)来提供我的文件。并且客户端能够通过tcp套接字与第一台服务器通信,并使用FTP下载或上传文件到第二台服务器。但最近有人告诉我,我应该使用HTTP而不是两者。因为Java中的HTTP在通信和文件服务方面真的很容易使用,最重要的是它能够遍历NAT,而现在我使用的是无法做到的。现在我想知道他是对的吗?我应该更改我的服务器以使用HTTP而不是T

integrity - 通过 ftp 发送文件后是否需要检查数据完整性?

我需要从远程计算机(在本地网络上)传输一些文件,我打算通过FTP进行传输。显然,FTP是基于TCP协议(protocol)的,如果我还记得我的类(class),TCP和UDP之间的区别在于TCP检查网络数据包是否正确发送和接收。在问自己是否需要添加校验和验证后,我的结论是我不需要。我说得对吗?我知道二进制传输和文本传输之间的区别,并计划只进行二进制传输(仅适用于Windows)。我真的需要校验通过二进制FTP传输的大文件吗?明确地说,我需要数据完整性来验证某些位在交换期间未被更改。中间人不是(很多)问题,因为操作将在专用网络中完成。 最佳答案

http - 如何试用HTTP、FTP、SMTP等应用协议(protocol)

我正在阅读ComputerNetworking:ATop-DownApproach5th(fifth)edition.我已经读到第二章了,我想知道是否可以通过编写请求等实际尝试不同的应用程序协议(protocol)?如果您需要一个工具来执行此操作,那么我正在使用Windows,如果我需要一个工具,那么该工具在幕后做什么以进行连接? 最佳答案 您应该使用telnet连接到所有这些协议(protocol),执行您的请求,阅读答案等等。我正在读到telnet在较新的Windows版本上默认被禁用(难以置信,为什么?谢天谢地我停止使用它了!

用 C 代码编写基于 TCP 的 FTP 服务

我正在尝试为多线程服务器编写TCPFTP服务。我找到了这个教程http://www.mario-konrad.ch/wiki/doku.php?id=programming:multithreading:tutorial-04这对理解TCP协议(protocol)的客户端多线程非常有帮助。事实上,这段代码创建了一个可以同时接受来自不同客户端的多个连接的服务器。但是,我正在努力寻找如何在其上应用ftp服务。精确地说明如何向FTP服务器发送文件和从FTP服务器获取文件。有什么帮助吗? 最佳答案 下面的代码是我去年为一篇网络论文所做的作业

java - 用 Java 6 编写 FTP 客户端

我想为自己写一个小项目——FTP客户端。我知道使用GUI、Socket和ServerSocket进行TCP通信。我请你告诉我实现FTP客户端我还需要了解什么...谢谢 最佳答案 首先,您需要阅读RFC。在实现最常见的操作后,至少使用一台良好的FTP服务器测试您的客户端。规范中有一些容易出错的地方。然后,将您编写的内容与其他实现进行比较。前段时间写了一个FTPclientformyH2Databaseproject. 关于java-用Java6编写FTP客户端,我们在StackOverfl

tcp - 192,168,1,2,7,138如何转换为IP地址192.168.1.2上的1930端口

我如何从FTP抛出的数字中推断出端口和IP?例如192,168,1,2,7,138在IP地址192.168.1.2上转换为1930?背后的逻辑是什么? 最佳答案 前四个数字表示客户端IP,后两个数字表示客户端端口号。这是十六进制到十进制的转换。16^2*7+138=1930第一个数字代表十六进制数(端口号)的第3位和第4位,第二个数字代表十六进制数的第1位和第2位。所以我们有7=07inhex和138=8Ainhex总的来说078Ainhexwhichis1930或者您可以跳过它并仅将第一个数字转换为dec,因为该“移位”,它用于第

tcp - 为什么 FTP 中的数据连接不是持久的?与将其保持为持久连接相比,这有什么优势?

FTP中的控制连接是持久的,但数据连接是在每次数据传输后创建和处理的(也称为非持久连接)。使数据连接成为非持久连接有什么好处?使数据连接成为非持久连接是否为服务器释放了资源? 最佳答案 因此文件结尾等于流结尾,因此数据连接上不必有叠加协议(protocol)。 关于tcp-为什么FTP中的数据连接不是持久的?与将其保持为持久连接相比,这有什么优势?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

c# - 使用 C# 通过网络发送文件的最佳方式是什么?

任何人都可以向我指出打开从客户端到服务器的连接、读取二进制文件并通过网络连接可靠地发送其内容的最佳方法的教程吗?更好的是,是否有一个开源库已经做到了我可以引用? 最佳答案 您应该研究二进制序列化并通过TCP套接字发送它。关于不同类型序列化的很好的解释:http://www.dotnetspider.com/resources/408-XML-serialization-Binary-serialization.aspxC#中TCP客户端/服务器的良好入门:http://www.codeproject.com/KB/IP/tcpcli