gpt4 book ai didi

c# - 使用 TCP 在 C# 中实现 FTP 客户端

转载 作者:可可西里 更新时间:2023-11-01 02:55:47 24 4
gpt4 key购买 nike

我一直在使用 C# 中的 TCP 套接字,并且在与我设置的 FTP 服务器通信时遇到了一些问题。我最初可以连接并收到 220 消息,但是当我发送“USER nrcrast”命令时,我从未收到响应,并且 DataAvailable 属性返回 false。有人知道我做错了什么吗?到目前为止,这是我的代码:

namespace TCPClient
{
public partial class TCPClientForm : Form
{


private TcpClient myClient;
NetworkStream stream;

public TCPClientForm()
{
InitializeComponent();
send();

}

void send()
{

while (true)
{
try
{
myClient = new TcpClient("nrcrast.dyndns.info", 21);
break;
}
catch (SocketException ex)
{
Console.WriteLine(ex.ToString());
}

}
stream = myClient.GetStream();
int sendOffset = 0;
int recOffset=0;

int dataLength;
Byte[] receiveData = new Byte[256];


// wait for a response
dataLength = stream.Read(receiveData, recOffset, receiveData.Length);
String recvdMessage = System.Text.Encoding.ASCII.GetString(receiveData, 0, dataLength);
Console.WriteLine(recvdMessage.ToString());
recOffset+=dataLength;


String message = "USER nrcrast";
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);
sendOffset += data.Length;

// wait for a response
while (!stream.DataAvailable)
{
}
dataLength = stream.Read(receiveData, 0, receiveData.Length);
recvdMessage = System.Text.Encoding.ASCII.GetString(receiveData, 0, dataLength);
Console.WriteLine(recvdMessage.ToString());


}


}

最佳答案

暗杀,需要在命令末尾放回车换行

String message = "USER nrcrast\r\n"; 

关于c# - 使用 TCP 在 C# 中实现 FTP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com