• 大小: 388KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C#
  • 标签: C#  Remoting  上传下载  

资源简介

C#利用Remoting实现服务器与客户端文件的上传与下载

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Remoting;
using System.IO;
using System.Threading;
namespace Client
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
            OpenUrl();
}
long CountLen = 0;
long Len = 0;
Remoteobject.Myobject app;
public void Upload(string filename)
{
if(filename==““)
{
MessageBox.Show(“请选择要上传的文件!““提示“);
return;
}
if(!File.Exists(filename))
{
MessageBox.Show(“上传的文件不存在!““错误“);
return;
}
FileStream fs = new FileStream(filename FileMode.Open);
CountLen=fs.Length;
long  Offset =fs.Length/1000;
byte[] byt = new byte[1024*5];
Len = 0;
while (true)
{
int templen = fs.Read(byt 0 byt.Length);

if (templen == 0)
{
MessageBox.Show(“文件写入完成!“);
break;
}
else
{
Len += templen;
int tempvalue=(int)(Len / Offset);
if (tempvalue < 1000)
{
progressBar1.Value = tempvalue;
}
else
{
progressBar1.Value = 1000;
}
button2.Text =“上传中...“+ ((int)(((float)progressBar1.Value / (float)progressBar1.Maximum) * 100)).ToString() + “%“;
label1.Text = “上传:“ + Convert.ToString(Len / 1024) + “K / “ + Convert.ToString(CountLen/1024)+ “K“;
if (!app.Save(Path.GetFileName(filename) byt))
{
MessageBox.Show(“文件写入失败!“);
}
}

}
fs.Close();
fs.Dispose();
}

private void button1_Click(object sender EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;

}
}
Thread th;
private void button2_Click(object sender EventArgs e)
{
th = new System.Threading.Thread(new System.Threading.ThreadStart(DoWork));
th.Start();
}
public void DoWork()
{
button1.Enabled = false;
button2.Enabled = false;
button4.Enabled = false;
textBox2.ReadOnly=true;
app.DeleteFile(Path.GetFileName(textBox1.Text));
Upload(textBox1.Text);
button2.Text = “上传“;
textBox2.ReadOnly=false;
button2.Enabled = true;
button1.Enabled = true;
button4.Enabled = true;
CountLen = 0;
Len = 0;
OldLen = 0;
}
long OldLen = 0;
private void timer1_Tick(object sender EventArgs e)
{
float offs = (float)Len / (float)1024 - (float)OldLen / (float)1024;

label2.Text = “当前速度 “ + offs.ToString() + “ K/s“;
OldLen = Len;
if ((int)offs != 0)
{
label6.Text = Convert.ToString((CountLen - Len) / (long)offs) + “s“;
}
}

private void Form1_Load(object sender EventArgs e)
{
timer1.Start();
button1.Enabled=false;
button2.Enabled=false;
button3.Enabled=false;
button4.Enabled=fals

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      28672  2009-07-29 16:37  Remoteobject\Client\bin\Debug\Client.exe

     文件      36352  2009-07-29 16:37  Remoteobject\Client\bin\Debug\Client.pdb

     文件       5632  2005-12-08 14:51  Remoteobject\Client\bin\Debug\Client.vshost.exe

     文件      16384  2009-07-29 16:33  Remoteobject\Client\bin\Debug\Remoteobject.dll

     文件      13824  2009-07-29 16:33  Remoteobject\Client\bin\Debug\Remoteobject.pdb

     文件       3777  2009-07-29 16:25  Remoteobject\Client\Client.csproj

     文件       6880  2009-07-29 16:37  Remoteobject\Client\Form1.cs

     文件      13154  2009-07-29 16:36  Remoteobject\Client\Form1.Designer.cs

     文件       6627  2009-07-29 16:36  Remoteobject\Client\Form1.resx

     文件        329  2009-07-29 16:28  Remoteobject\Client\Help.cs

     文件       2312  2009-07-29 16:28  Remoteobject\Client\Help.Designer.cs

     文件       6551  2009-07-29 16:28  Remoteobject\Client\Help.resx

     文件        823  2009-07-29 16:40  Remoteobject\Client\obj\Client.csproj.FileListAbsolute.txt

     文件        899  2009-07-29 16:36  Remoteobject\Client\obj\Debug\Client.csproj.GenerateResource.Cache

     文件      28672  2009-07-29 16:37  Remoteobject\Client\obj\Debug\Client.exe

     文件        180  2009-07-29 16:36  Remoteobject\Client\obj\Debug\Client.Form1.resources

     文件        879  2009-07-29 16:33  Remoteobject\Client\obj\Debug\Client.Help.resources

     文件      36352  2009-07-29 16:37  Remoteobject\Client\obj\Debug\Client.pdb

     文件        180  2009-07-29 16:33  Remoteobject\Client\obj\Debug\Client.Properties.Resources.resources

     文件       2570  2009-07-29 16:33  Remoteobject\Client\obj\Debug\ResolveAssemblyReference.cache

     文件        465  2009-06-25 14:27  Remoteobject\Client\Program.cs

     文件       1160  2009-06-25 14:27  Remoteobject\Client\Properties\AssemblyInfo.cs

     文件       2868  2009-06-25 14:27  Remoteobject\Client\Properties\Resources.Designer.cs

     文件       5612  2009-06-25 14:27  Remoteobject\Client\Properties\Resources.resx

     文件       1091  2009-06-25 14:27  Remoteobject\Client\Properties\Settings.Designer.cs

     文件        249  2009-06-25 14:27  Remoteobject\Client\Properties\Settings.settings

     文件      16384  2009-07-29 16:33  Remoteobject\Remoteobject\bin\Debug\Remoteobject.dll

     文件      13824  2009-07-29 16:33  Remoteobject\Remoteobject\bin\Debug\Remoteobject.pdb

     文件       4340  2009-07-16 11:44  Remoteobject\Remoteobject\Myobject.cs

     文件      16384  2009-07-29 16:33  Remoteobject\Remoteobject\obj\Debug\Remoteobject.dll

............此处省略45个文件信息

评论

共有 条评论