基本信息
源码名称:TCP简单文件传输源码(含发送端以及接收端)
源码大小:0.11M
文件格式:.zip
开发语言:C#
更新时间:2019-10-17
   源码介绍


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Net;
using System.Net.Sockets;
using System.IO;

namespace 使用Tcp协议传输文件
{
    public partial class 发送端 : Form
    {

        private TcpClient tcpclient;
        private FileStream fs;
        private NetworkStream ns;

        public 发送端()
        {
            InitializeComponent();
        }

        private void btn_Select_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofdialog = new OpenFileDialog();
            if(ofdialog.ShowDialog()==DialogResult.OK)
            {
                label1.Text = ofdialog.FileName;
            }
        }

        private void btn_Send_Click(object sender, EventArgs e)
        {
            if(txtBox_IPAddress.Text.Equals(""))
            {
                MessageBox.Show("输入IP地址");
                return;
            }
            if(label1.Text.Equals("文件路径:"))
            {
                MessageBox.Show("请选择一个文件");
                return;
            }
            tcpclient =new TcpClient();
            tcpclient.BeginConnect(IPAddress.Parse(txtBox_IPAddress.Text), 8080,
                new AsyncCallback((IAsyncResult Iar) =>
                {
                    this.tcpclient = (TcpClient)Iar.AsyncState;
                    this.tcpclient.EndConnect(Iar);
                    if (this.tcpclient.Connected)
                    {
                        MessageBox.Show("连接成功,现在开始传输");
                        try
                        {
                            using (ns = this.tcpclient.GetStream())
                            {
                                fs = new FileStream(label1.Text, FileMode.Open);

                                byte[] buffer = new byte[1024];
                                fs.Read(buffer, 0, buffer.Length);
                                int len = fs.Read(buffer, 0, buffer.Length);
                                while (len > 0)
                                {
                                    ns.Write(buffer, 0, len);
                                    len = fs.Read(buffer, 0, buffer.Length);
                                }
                                fs.Close();
                            }
                     
                            tcpclient.Close();//关闭连接
                            ns = null;
                            tcpclient = null;//初始化
                        }
                        catch (Exception SEND_ERROR)
                        {
                            MessageBox.Show("遇到 "   SEND_ERROR.Message   "\n 传输失败 ");
                            tcpclient.Close();
                            tcpclient = null;//初始化
                        }
                    }
                })
                , tcpclient);
        }
    }
}