110,528
社区成员
发帖
与我相关
我的任务
分享
/////////////////////////////////////////////////////////////////////////////////
//连接服务器
////////////////////////////////////////////////////////////////////////////////
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(EPhost); //EPhost,服务器IP与端口
while(true)
{
Console.WriteLine("请选择一种操作:1.上传文件 2.下载文件 3.退出");
int choice;
choice = int.Parse(Console.ReadLine());
Console.WriteLine("");
switch (choice)
{
case 1:
{
//发送服务请求
Get = "上传";
ByteGet = Encoding.Unicode.GetBytes(Get); //Byte[] ByteGet;
s.Send(ByteGet, ByteGet.Length, SocketFlags.None);
this.Updata();
break;
}
………………………………
}
}
/////////////////////////////////////////////////////////////////////////////////
//上传文件,位于void UpData()方法里
////////////////////////////////////////////////////////////////////////////////
if (canSend.Equals("Begin"))
{
byte[] sendBuffer = new byte[2048];
while ((i = fs.Read(sendBuffer, 0, 2048)) != 0) //FileStream fs,用于读取文件
{
fs.Flush();
ns.Write(sendBuffer, 0, i); //NetworkStream ns,用于传输文件数据流的网络基础数据流
ns.Flush();
}
Console.WriteLine("\n上传成功!\n\n");
}
fs.Close();
ns.Close();
s.Disconnect(true);
//////////////////////////////////////////////////////////////////////////////////////////
//接受文件数据
/////////////////////////////////////////////////////////////////////////////////////////
Byte[] fileByte = new Byte[2048];
int i;
while ((i = ns.Read(fileByte, 0, 2048)) != 0)
{
ns.Flush();
fs.Write(fileByte, 0, i);
fs.Flush();
}
Console.WriteLine("\n接受客户端上传成功!\n\n");
fs.Close();
ns.Close();