MemoryStream memStream = new MemoryStream(binaryData);
IFormatter brFormatter = new BinaryFormatter();
binaryData = null;
Object obj = brFormatter.Deserialize(memStream);
return obj;
}
}
/// <summary>
/// 文件块
/// </summary>
[Serializable]
public class PakageHead
{
public PakageHead()
{
}
string name = "";
//文件名
public string Name
{
get { return name; }
set { name = value; }
}
int packages = 0;
/// <summary>
/// 文件块总数
/// </summary>
public int Packages
{
get { return packages; }
set { packages = value; }
}
int pos = 0;
/// <summary>
/// 文件块位置
/// </summary>
public int Pos
{
get { return pos; }
set { pos = value; }
}
int packageSize = 0;
/// <summary>
/// 文件块大小
/// </summary>
public int PackageSize
{
get { return packageSize; }
set { packageSize = value; }
}
long fileSize = 0;
/// <summary>
/// 文件总大小
/// </summary>
public long FileSize
{
get { return fileSize; }
set { fileSize = value; }
}
public PakageHead(int pos, int packageSize, long fileSize)
{
this.pos = pos;
this.packageSize = packageSize;
this.fileSize = fileSize;
}
}
[Serializable]
public class PakageBody
{
byte[] packByte = null;
/// <summary>
/// 包字节
/// </summary>
public byte[] PackByte
{
get { return packByte; }
set { packByte = value; }
}
}
}
客户端代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using FileTransferServer;
using System.Threading;
namespace FileTransferClient
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Client Running ...");
TcpClient client;
ConsoleKey key;
// const int BufferSize = 8192;
Console.WriteLine("Menu: S - Send, X - Exit");
key = Console.ReadKey(true).Key;
服务器端代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Threading;
using FileTransferServer;
using System.IO;
namespace FileTransferServer
{
class Program
{
static void Main(string[] args)
{
// const int BufferSize = 1024 * 1024; // 缓存大小,8192Bytes
ConsoleKey key;
Console.WriteLine("Server is running ... ");
IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
TcpListener listener = new TcpListener(ip, 8500);