Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C# FTP client using TcpClient class -- please help

95 views
Skip to first unread message

alm...@altavista.com

unread,
Mar 5, 2008, 11:43:53 AM3/5/08
to
Folks,

I'm trying to use C# to connect to an FTP server to upload some
files. I'm calling:

System.Net.Sockets.TcpClient mtTCPClient = new
System.Net.Sockets.TcpClient(url, 21);


The problem is though I know this server accepts a username and
password but I dont know where to put them. I dont see a constructor
for this in the API.

I have that funny feeling that I'm doing something wrong! Or that I'm
missing something. Can anyone help please. Any comments/suggestions/
things that I should know/code-samples much appreciated.

Thanks,
Al.

parez

unread,
Mar 5, 2008, 11:55:12 AM3/5/08
to
On Mar 5, 11:43 am, "almu...@altavista.com" <almu...@altavista.com>
wrote:

Hi Al,

After opening the connection to 21 you will have to write code to send
ftp commands (USER,PWD BY etc).
And your class will have the construcotr for taking username password
and stuff..


Or use 3rd party components.

check this out

http://www.google.com/search?sourceid=gmail&q=ftp%20client%20in%20.net

alm...@altavista.com

unread,
Mar 5, 2008, 11:59:29 AM3/5/08
to
> http://www.google.com/search?sourceid=gmail&q=ftp%20client%20in%20.net- Hide quoted text -
>
> - Show quoted text -

Can you help me please, to get me started?

Thanks,
Al.
The stupid one.

parez

unread,
Mar 5, 2008, 12:03:12 PM3/5/08
to
On Mar 5, 11:59 am, "almu...@altavista.com" <almu...@altavista.com>
wrote:
> >http://www.google.com/search?sourceid=gmail&q=ftp%20client%20in%20.net-Hide quoted text -

>
> > - Show quoted text -
>
> Can you help me please, to get me started?
>
> Thanks,
> Al.
> The stupid one.

This mite be a good starting point

http://www.ondotnet.com/pub/a/dotnet/2004/05/10/ftpdotnet.htm

Peter Duniho

unread,
Mar 5, 2008, 1:41:56 PM3/5/08
to
On Wed, 05 Mar 2008 08:59:29 -0800, alm...@altavista.com
<alm...@altavista.com> wrote:

> Can you help me please, to get me started?

If you want to implement an FTP client from scratch, this is the place to
start:
http://www.faqs.org/rfcs/rfc765.html

Otherwise, you probably would be better off using the built-in support for
FTP. Here's a starting point for that:
http://msdn2.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx

Pete

Arne Vajhøj

unread,
Mar 5, 2008, 9:40:06 PM3/5/08
to

TcpClient first argument is not an URL, but just a host name.

.NET has built in FTP support since .NET 2.0 - code snippet:

public static void Upload(string localfile, string ftpurl, bool
bin)
{
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpurl);
req.Method = WebRequestMethods.Ftp.UploadFile;
req.UseBinary = bin;
if(bin)
{
Stream instm = new FileStream(localfile, FileMode.Open,
FileAccess.Read);
Stream outstm = req.GetRequestStream();
byte[] b = new byte[10000];
int n;
while((n = instm.Read(b, 0, b.Length)) > 0)
{
outstm.Write(b, 0, n);
}
instm.Close();
outstm.Close();
}
else
{
StreamReader sr = new StreamReader(localfile);
StreamWriter sw = new StreamWriter(req.GetRequestStream());
string line;
while((line = sr.ReadLine()) != null)
{
sw.WriteLine(line);
}
sr.Close();
sw.Close();
}
FtpWebResponse resp = (FtpWebResponse)req.GetResponse();
Console.WriteLine(resp.StatusCode);
}

If you reall want to implement a FTP client using TcpClient, then
look at http://www.vajhoej.dk/arne/eksperten/div_2007_03/xftp.cs !

Arne

0 new messages