本文主要是介绍Tcpclient对象文件传送,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
建立连接前,客户端和服务器端各创建一个Tcpclient 对象:client 和newclient,然后利用该对象接收和发送数据,具体的c/s连接过程省略,以下是利用Tcpclient创建的对象传送文件的部分代码。
//发送窗体
private void send_Click(object sender, EventArgs e)
{
NetworkStream tcpStream = client.GetStream();
FileStream fs = new FileStream(textBox1.Text, FileMode.Open, FileAccess.Read);
BinaryReader fileReader = new BinaryReader(fs,Encoding.Default);
long Total=fs.Length;
byte[] bytes = new byte[Total];
int hasRead=0;
int len;
while ((hasRead < fs.Length))
{
len = fileReader.Read(bytes, 0, bytes.Length);
tcpStream.Write(bytes, 0, len);
hasRead += len;
}
fileReader.Close();
fs.Close();
AddListBoxItem("文件成功发送!");
}
private void direction_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
}
//接收窗体
private void direction_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = saveFileDialog1.FileName;
}
}
private void receive_Click(object sender, EventArgs e)
{
byte[] bytes = new byte[20480];
NetworkStream netstream = newClient.GetStream();
BinaryReader br = new BinaryReader(netstream);
int i = br.Read(bytes, 0, 20480);
FileStream fs = File.Create(textBox1.Text);
fs.Write(bytes, 0, i);
fs.Close();
br.Close();
}
}
//该代码接收窗体中,创建了一个20480字节的数组,实际编写时,可以在发送方先获取文件大小,然后将其发送给接收端,然后接收端创建相应文件大小的数组,同时也可以获取相应的文件名,创建相应的文件,大家可以自行完成。
这篇关于Tcpclient对象文件传送的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!