C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: C#でのFTPサーバ構築


(過去ログ 137 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■80562 / inTopicNo.1)  C#でのFTPサーバ構築
  
□投稿者/ NiN_初心者 (1回)-(2016/07/27(Wed) 17:20:51)

分類:[C#] 

お世話になります。
プログラムを始めたばかりなのですが、サーバサンプルを仕事でつくることになりました。
1からは作れない為Webでソースコードを入手しデバッグまではできたのですが、クライアント側からホスト指定する際
以下のコードからどうホスト名を指定していいかわかりません。関係ありそうな所を張りました。もしよろしければご教授頂きたいです。

何卒宜しくお願いします。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Net.Sockets;
using System.IO;
using System.Threading;

using log4net;

namespace SharpFtpServer
{
    public class FtpServer : IDisposable
    {
        ILog _log = LogManager.GetLogger(typeof(FtpServer));

        private bool _disposed = false;
        private bool _listening = false;

        private TcpListener _listener;
        private List<ClientConnection> _activeConnections;

        private IPEndPoint _localEndPoint;

       
        public FtpServer()
            : this(IPAddress.Any, 21)
        {

        }

        public FtpServer(IPAddress ipAddress, int port)
        {
            _localEndPoint = new IPEndPoint(ipAddress, port);
        }

        public void Start()
        {
            _listener = new TcpListener(_localEndPoint);

            _log.Info("#Version: 1.0");
            _log.Info("#Fields: date time c-ip c-port cs-username cs-method cs-uri-stem sc-status sc-bytes cs-bytes s-name s-port");

            _listening = true;
            _listener.Start();

            _activeConnections = new List<ClientConnection>();

            _listener.BeginAcceptTcpClient(HandleAcceptTcpClient, _listener);
        }

        public void Stop()
        {
            _log.Info("Stopping FtpServer");

            _listening = false;
            _listener.Stop();

            _listener = null;
        }

        private void HandleAcceptTcpClient(IAsyncResult result)
        {
            if (_listening)
            {
                _listener.BeginAcceptTcpClient(HandleAcceptTcpClient, _listener);

                TcpClient client = _listener.EndAcceptTcpClient(result);

                ClientConnection connection = new ClientConnection(client);

                _activeConnections.Add(connection);

                ThreadPool.QueueUserWorkItem(connection.HandleClient, client);
            }
        }

        public void Dispose()
        {
            Dispose(true);
        }

        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    Stop();

                    foreach (ClientConnection conn in _activeConnections)
                    {
                        conn.Dispose();
                    }
                }
            }

            _disposed = true;
        }
    }
}

引用返信 編集キー/
■80567 / inTopicNo.2)  Re[1]: C#でのFTPサーバ構築
□投稿者/ 774RR (435回)-(2016/07/27(Wed) 18:57:31)
名前解決は ftpd の仕事ではないので「ホスト名」は当該 ftpd プログラム中からは指定しないものだ。

DNS や [ネットワーク共有] で動的解決するとか
/etc/hosts で静的解決するとか
IP アドレス直接指定で「名前解決」はパスするとか
が普通の解決策だろう。

どれが適切かはあなたのネットワーク構成で異なるので、管理者に要相談。

引用返信 編集キー/
■80571 / inTopicNo.3)  Re[1]: C#でのFTPサーバ構築
□投稿者/ WebSurfer (983回)-(2016/07/27(Wed) 19:11:12)
No80562 (NiN_初心者 さん) に返信

> 1からは作れない為Webでソースコードを入手し

参考にしたその web サイトのページの url を書けませんか?
引用返信 編集キー/
■80573 / inTopicNo.4)  Re[1]: C#でのFTPサーバ構築
□投稿者/ KH (1回)-(2016/07/27(Wed) 19:30:22)
> クライアント側からホスト指定する際
> 以下のコードからどうホスト名を指定していいかわかりません。関係ありそうな所を張りました。もしよろしければご教授頂きたいです。

クライアント側からと書かれていますが、
提示して頂いたソースコードはサーバー側に見えるのですが…。
引用返信 編集キー/
■80581 / inTopicNo.5)  Re[2]: C#でのFTPサーバ構築
□投稿者/ NiN_初心者 (3回)-(2016/07/28(Thu) 09:27:06)
NiN_初心者 さんの Web サイト
774RR様 WebSurfer様 KH様

ありがとうございます。大変感謝しております。以下が入手元のURLになります。

http://www.codeproject.com/Articles/380769/Creating-an-FTP-Server-i...
引用返信 編集キー/
■80583 / inTopicNo.6)  Re[3]: C#でのFTPサーバ構築
□投稿者/ 魔界の仮面弁士 (792回)-(2016/07/28(Thu) 09:42:52)
2016/07/28(Thu) 09:44:47 編集(投稿者)

No80581 (NiN_初心者 さん) に返信
> http://www.codeproject.com/Articles/380769/Creating-an-FTP-Server-i...

URL が 中途半端に暈されていますが、

 《Creating an FTP Server in C# - with IPv6 Support》
 http://www.codeproject.com/Articles/380769/Creating-an-FTP-Server-in-Csharp-with-IPv-Support

のことですね? 末尾が ... な URL だとサーバーエラーになりました。
(最後の ... を削れば繋がるんですけど)
引用返信 編集キー/
■80584 / inTopicNo.7)  Re[4]: C#でのFTPサーバ構築
□投稿者/ NiN_初心者 (5回)-(2016/07/28(Thu) 09:56:00)
NiN_初心者 さんの Web サイト
No80583 (魔界の仮面弁士 さん) に返信
> 2016/07/28(Thu) 09:44:47 編集(投稿者)

魔界の仮面弁士 様
ありがとうございます。URLの件申し訳ありません。ご指摘のアドレスで間違いありません。


>
> ■No80581 (NiN_初心者 さん) に返信
>>http://www.codeproject.com/Articles/380769/Creating-an-FTP-Server-i...
>
> URL が 中途半端に暈されていますが、
>
>  《Creating an FTP Server in C# - with IPv6 Support》
>  http://www.codeproject.com/Articles/380769/Creating-an-FTP-Server-in-Csharp-with-IPv-Support
>
> のことですね? 末尾が ... な URL だとサーバーエラーになりました。
> (最後の ... を削れば繋がるんですけど)
引用返信 編集キー/
■80590 / inTopicNo.8)  Re[3]: C#でのFTPサーバ構築
□投稿者/ WebSurfer (986回)-(2016/07/28(Thu) 10:31:46)
No80581 (NiN_初心者 さん) に返信

> クライアント側からホスト指定する際以下のコードからどうホスト名を指定して
> いいかわかりません。

参考にされている CODE PROJECT の記事を見ると、

"With the new ClientConnection class and the modifications to HandleAcceptTcpClient
above, we now have a partially functional FTP server! Just run your project and
use FileZilla to connect."

とか書いてあって、FileZilla(FTP クライアント)を使って接続して検証している
ようですが、読んでますか?

その通りやってもできないということではないですよね? それとも、それでは目的
に合わないから、FileZilla を使わないで、独自に FTP クライアントを作って接続
したいのでしょうか?

引用返信 編集キー/
■80592 / inTopicNo.9)  Re[4]: C#でのFTPサーバ構築
□投稿者/ NiN_初心者 (6回)-(2016/07/28(Thu) 10:39:34)
NiN_初心者 さんの Web サイト
No80590 (WebSurfer さん) に返信
> ■No80581 (NiN_初心者 さん) に返信

WebSurfer様

その通りやってもできないということではないですよね? それとも、それでは目的
に合わないから、FileZilla を使わないで、独自に FTP クライアントを作って接続
したいのでしょうか?
⇒すみません、FileZillaでは試していません。独自のFTPクライアントを接続するのが目的です。
  そのクライアントには ポートNo ホスト名 ユーザー名 パスワード の設定項目があり、これを確立したいのです。
引用返信 編集キー/
■80597 / inTopicNo.10)  Re[5]: C#でのFTPサーバ構築
□投稿者/ PANG2 (129回)-(2016/07/28(Thu) 11:50:03)
No80592 (NiN_初心者 さん) に返信
> ⇒すみません、FileZillaでは試していません。独自のFTPクライアントを接続するのが目的です。

何故試さないのか?
ftpの知識があまりないようなので、段階をおって勉強した方がいいと思います。

(1) FileZilla + 既存ftpd
(2) 独自クライアント + 既存ftpd
(3) FileZilla + codeproject版ftpd
(4) 独自クライアント + codeproject版ftpd
引用返信 編集キー/
■80598 / inTopicNo.11)  Re[5]: C#でのFTPサーバ構築
□投稿者/ WebSurfer (988回)-(2016/07/28(Thu) 12:05:55)
No80592 (NiN_初心者 さん) に返信

> ⇒すみません、FileZillaでは試していません。独自のFTPクライアントを接続するのが目的です。
>   そのクライアントには ポートNo ホスト名 ユーザー名 パスワード の設定項目があり、これを確立したいのです。

CODE PROJECT のソースを使って作った FTP サーバーに接続できる FTP クライアントの
作り方を教えてほしいと言ってます?

何の意味があるのですか? 質問者さんは FTP サーバーを作っているのですよね?

失礼ながら、まともに動くかどうか分からない自作 FTP サーバーと自作 FTP クライアン
トを組み合わせて検証するなんて間違っていると思うのですが。少なくと一方はもまとも
に動くことが確実でなければ・・・

どうしてもということでしたら、C# ftp client などをキーワードにググって見れば FTP
クライアントに関する参考になる記事が見つかるので、まずはそれを見ることをお勧めし
ます。
引用返信 編集キー/
■80604 / inTopicNo.12)  Re[6]: C#でのFTPサーバ構築
□投稿者/ NiN_初心者 (7回)-(2016/07/28(Thu) 12:35:45)
NiN_初心者 さんの Web サイト
ご回答ありがとうございます。

自身知識不足は承知しておりました。
頂いた情報をもとに一度勉強しなおします。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -