110,502
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace FileHandlerService
{
public class FtpServer
{
private TcpListener _listener;
public FtpServer()
{
}
public void Start()
{
_listener = new TcpListener(IPAddress.Any, 21);
_listener.Start();
_listener.BeginAcceptTcpClient(HandleAcceptTcpClient, _listener);
}
public void Stop()
{
_listener?.Stop();
}
private void HandleAcceptTcpClient(IAsyncResult result)
{
TcpClient client = _listener.EndAcceptTcpClient(result);
_listener.BeginAcceptTcpClient(HandleAcceptTcpClient, _listener);
// DO SOMETHING.
NetworkStream stream = client.GetStream();
using (StreamWriter writer = new StreamWriter(stream, Encoding.ASCII))
using (StreamReader reader = new StreamReader(stream, Encoding.ASCII))
{
writer.WriteLine("YOU CONNECTED TO ME");
writer.Flush();
writer.WriteLine("I will repeat after you. Send a blank line to quit.");
writer.Flush();
string line = null;
while (!string.IsNullOrEmpty(line = reader.ReadLine()))
{
writer.WriteLine("Echoing back: {0}", line);
writer.Flush();
}
}
}
}
}
try
{
listerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous;//指定身份验证 Anonymous匿名访问
listerner.Prefixes.Add("http://127.0.0.1:21/");//这么写比较好
listerner.Start();
}
catch (Exception ex)
{
Console.WriteLine("服务启动失败..." + ex.Message);
}