Поле экземпляра класса не показывает сохраненное значение этого поля

Я разрабатываю приложение для отправки файлов из одной конечной системы (класс клиента) в другую конечную систему (класс сервера), в настоящее время я тестирую его на том же компьютере.

Я могу передать файл с клиента на сервер, но проблема в том, что расширение этого файла поступает на сервер. Теперь, чтобы решить эту проблему, я использовал строковую переменную, которая хранит тип расширения в классе клиента и ссылаясь на класс клиента, я могу использовать эту переменную в классе сервера.

Теперь проблема в том,

Когда я использую переменную (cl.extension) в классе сервера, он не возвращает значения.

Код класса клиента

    namespace Client_App
 {

public partial class Clients : Form
{

    public string extension;
    //Create the instance of TcpClient Class so that we can use the methods and properties of that class
    TcpClient clientsocket = new TcpClient();
    public Clients()
    {
        InitializeComponent();


    }

    private void Form1_Load(object sender, EventArgs e)
    {
        //It connect client to the specified server with the ip address and the port number
        //By here the server replies that the connection has been established after executing the next statement
        clientsocket.Connect("127.0.0.1", 8888);

        label2.Text = "From Server: Connected ";
    }

    private void button1_Click(object sender, EventArgs e)
    {
        //Here GetStream method send the message to the server
        NetworkStream serverStream = clientsocket.GetStream();


        OpenFileDialog ofd = new OpenFileDialog();
        ofd.ShowDialog();
        ofd.AddExtension = true;

        string filename = ofd.FileName;
        byte[] outStream = File.ReadAllBytes(filename);

    //Variable that store the extension of file
        extension = Path.GetExtension(filename);

        serverStream.Write(outStream , 0, outStream.Length);
        textBox2.Text = "File has been sended to server";

        serverStream.Flush();

    }

}
 }

Код серверного класса

    using Client_App;
public partial class Server : Form
{

    Clients cl = new Clients();


    TcpListener serverSocket = new TcpListener(8888);
    TcpClient clientSocket = new TcpClient();
    public Server()
    {
        InitializeComponent();

    }

    private void button1_Click(object sender, EventArgs e)
    {


            try
            {
                serverSocket.Start();
                clientSocket = serverSocket.AcceptTcpClient();

            NetworkStream serverStream = clientSocket.GetStream();
            byte[] inStream = new byte[69000];
            serverStream.Read(inStream, 0, clientSocket.ReceiveBufferSize);
     //After reading the stream, it give user ability to save that stream by creating a file
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.ShowDialog();
            DicrectoryBox.Text = sfd.FileName + cl.extension;//Here is problem
            MessageBox.Show(cl.extension);//It does not show the extension (of client file)

            File.WriteAllBytes(DicrectoryBox.Text, inStream);
            StatusBox.Text = "Writing Completed";
        }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }



        clientSocket.Close();
        serverSocket.Stop();
    }
}

Проблема с cl.extension в классе сервера, MessageBox не показывает расширение файла, который был отшлифован клиентом.

0 ответов

Другие вопросы по тегам