nrc*_*ast 0 c# ftp tcp networkstream stream
我一直在乱用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());
}
}
Run Code Online (Sandbox Code Playgroud)
在黑暗中拍摄,你需要在命令的末尾放一个回车和新行
String message = "USER nrcrast\r\n";
Run Code Online (Sandbox Code Playgroud)