[英]File sending from server to one client or multiple in C#
这是我的服务器端应用程序代码:有一个逻辑错误没有得到解决请任何人 hlp .....
public void SendFile(string IP, string path, string FileName) { try {
FileStream fs = new FileStream(path, FileMode.Open);//assign file to stream
byte[] buffer = new byte[fs.Length];//initialize buffer with stream length
int len = (int)fs.Length;
fs.Read(buffer, 0, len);//read bytes from stream
fs.Close();
BinaryFormatter br = new BinaryFormatter();
TcpClient myclient = new TcpClient(IP, 9000);
NetworkStream myns = myclient.GetStream();//assign stream to client
br.Serialize(myns, FileName);//provide header to stream
BinaryWriter mysw = new BinaryWriter(myns);
mysw.Write(buffer);//write file in stream
MessageBox.Show("File Successfully Transfered", "File Send", MessageBoxButtons.OK, MessageBoxIcon.Information);
mysw.Close();
myns.Close();
myclient.Close();
}
catch
{
MessageBox.Show("Reciever end Not Found", "File Sending Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
这是我的客户端应用程序代码,有一个逻辑错误没有得到解决请任何人 hlp .....
公共无效文件接收器(){
NetworkStream myns;
TcpListener mytcpfilelistner;
Socket mysocketfile;
Thread myth;
BinaryReader bb;
try
{
mytcpfilelistner = new TcpListener(9000);
mytcpfilelistner.Start();
mysocketfile = mytcpfilelistner.AcceptSocket();
myns = new NetworkStream(mysocketfile);
BinaryFormatter br = new BinaryFormatter();
object op;
op = br.Deserialize(myns); // Deserialize the Object from Stream
bb = new BinaryReader(myns);
byte[] buffer = bb.ReadBytes(2000000);
FileStream fss = new FileStream("C:\\" + (string)op, FileMode.CreateNew, FileAccess.Write);
fss.Write(buffer, 0, buffer.Length);
fss.Close();
mytcpfilelistner.Stop();
MessageBox.Show("One File Reeceived and Saved in C Drive", "File Recieve", MessageBoxButtons.OK, MessageBoxIcon.Information);
LB.Client.lbclient objlb = new LB.Client.lbclient();
objlb.popup("One File Recieved and And Seved in C:\\" + (string)op);
if (mysocketfile.Connected == true)
{
while (true)
{
FileReceiver();
}
}
}
catch
{ }
}
我不明白你上面的问题是什么。 但是,您可以查看此线程SendFile over TCP/IP .NET CF ,以了解通过套接字发送文件的更简单方法。 此外,我真的建议您阅读并使用 C# 和 IDisposable 中的 using 语句,因为您应该在上面的代码中使用它来确定性地清理代码分配的资源。 这是一篇让您入门的文章https://msdn.microsoft.com/en-us/library/yh598w02.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.