WinForm制作文件传输助手,Tcp局域网传输文件,传输速度受限于宽带和硬盘速度上限
先看看传输使用界面的效果,可以选择发送和接收。
需要同一局域网的电脑先选择IP(IP能自动读取到)开启接收,注意这里需要自己更改一下文件名和存储格式,也可以不改传完再改,然后另一台电脑选择文件发送,之后会存储在选的的文件夹。
现在这个功能比较简单,只能单文件发送,但是其实比U盘硬盘方便,一般的六类网线传输压缩包在50M/s以上,U盘硬盘复制就不行了,特别如果是像我们学校这种网络结构,一个学校都在一个局域网,那真的方便!!!
至于这个小东西为什么会出现,是因为项目上有些特殊的地方限制太多了,连插硬盘都需要关软件,联网又要开很不方便,网络限制一般软件只能局域网通信,还要开特定的端口等,你才能在电脑上通信,这样和机房的服务器远程的时候文件就不好拿过去,又不可能每次都去开机房的门。
普通的局域网用特定IP和端口,通信也是很方便的。
这里提醒一下,局域网的共享文件夹也是可以的,所以这算是比较方便吧,毕竟共享大家都能访问了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WinFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();this.MaximizeBox = false;this.StartPosition = FormStartPosition.CenterScreen;}private void Form2_Load(object sender, EventArgs e){Get_Local_IPAddress();comboBox1.SelectedIndex = 0;radioButton1.Checked = true;}public void Get_Local_IPAddress(){IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());foreach (IPAddress ip in ips){if (ip.AddressFamily == AddressFamily.InterNetwork){comboBox1.Items.Add(ip.ToString());}}}private void radioButton1_CheckedChanged(object sender, EventArgs e){button1.Text = "选择文件";button2.Text = "开始发送";textBox3.Text = "";}private void radioButton2_CheckedChanged(object sender, EventArgs e){button1.Text = "选择位置";button2.Text = "等待连接";textBox3.Text = @"C:\1.noname";}private void button2_Click(object sender, EventArgs e){string filePath = textBox3.Text;if (textBox3.Text == "") { MessageBox.Show("检查文件位置!"); return; }button1.Enabled = false;button2.Enabled = false;if (radioButton1.Checked == true){TcpClient client = new TcpClient();client.Connect(IPAddress.Parse(comboBox1.Text), int.Parse(textBox2.Text));FileStream fileStream = File.OpenRead(@filePath);NetworkStream networkStream = client.GetStream();//定义网络数据流using (FileStream fread = new FileStream(@filePath, FileMode.Open, FileAccess.Read)){while (true){byte[] buffer = new byte[1024 * 1024 * 5];int a = fread.Read(buffer, 0, buffer.Length);if (a == 0) break;networkStream.Write(buffer, 0, a);}}fileStream.Close();client.Close();MessageBox.Show("发送成功!");button1.Enabled = true;button2.Enabled = true;}else if (radioButton2.Checked == true){TcpListener listener = new TcpListener(IPAddress.Parse(comboBox1.Text), int.Parse(textBox2.Text));// 创建一个TCP监听器并开始侦听连接listener.Start();// 接受连接并获取数据TcpClient client = listener.AcceptTcpClient();NetworkStream networkStream = client.GetStream();using (FileStream fwrite = new FileStream(@filePath, FileMode.Create, FileAccess.Write)){while (true){byte[] buffer = new byte[client.ReceiveBufferSize];int a = networkStream.Read(buffer, 0, client.ReceiveBufferSize);if (a == 0) { fwrite.Close(); break; }fwrite.Write(buffer, 0, a);}}client.Close();listener.Stop();MessageBox.Show("文件已接收并保存在:" + textBox3.Text);button1.Enabled = true;button2.Enabled = true;}}private void button1_Click(object sender, EventArgs e){if (radioButton1.Checked == true){OpenFileDialog dialog = new OpenFileDialog();dialog.Multiselect = false;//该值确定是否可以选择多个文件dialog.Title = "请选择文件";dialog.Filter = "所有文件(*.*)|*.*";if (dialog.ShowDialog() == DialogResult.OK){textBox3.Text = dialog.FileName;}}else if (radioButton2.Checked == true){FolderBrowserDialog dialog = new FolderBrowserDialog();dialog.Description = "请选择文件夹";dialog.SelectedPath = "C:\\";if (dialog.ShowDialog() == DialogResult.OK){if (radioButton2.Checked == true){textBox3.Text = dialog.SelectedPath;}if (radioButton2.Checked == true){textBox3.Text = dialog.SelectedPath + @"\1.noname";}}}}private void groupBox1_Enter(object sender, EventArgs e){}}
}
WinForm制作文件传输助手,Tcp局域网传输文件,传输速度受限于宽带和硬盘速度上限相关推荐
- 局域网中文件或打印机共享服务器,局域网内文件、打印机共享设置详解.doc
文档介绍: 局域网内文件.打印机共享设置详解第一:小型企业中,一般没有另外装置如WINDOWS2003服务器操作系统电脑来作为打印服务器而采用是装有WINDOWSxp电脑之间的双机打印共享,这是对等网 ...
- 文件传输助手不小心删了怎么恢复?来get新妙招!
案例:微信传输助手聊天记录可以恢复吗? [微信传输助手删除了,之前发在里面的聊天记录.照片这些能恢复吗?求大佬帮忙,感谢!] 文件传输助手是苹果手机中常用的一款应用程序,我们可以通过它来进行文件传输和 ...
- TCP、UDP、TCP三次握手与四次挥手、TCP如何保证可靠传输、TCP异常分析、拆包和粘包等
4.OSI模型 4.1.OSI七层模型 4.2.七层模型功能 物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输,如网线:网卡标准. 数据链路层:接收来自物理层的位流形式的数据 ...
- 新浪微博 XML 文件操作助手
TAG: 新浪微博 XML 文件操作助手 API /// <summary> /// XML 文件操作助手 /// </summary> public class XmlHel ...
- 局域网文件文本在线传输助手
局域网文件文本在线传输助手 具体实现代码链接 下面我将详细记录,我在完成该项目涉及的具体问题的具体分析实现. 要进行局域网通信首先要做的就是客户端和局域网建立链接. 链接过程 服务器端是无法知道都有哪 ...
- 基于小程序+云开发制作一个文件传输助手小程序
微信文件传输助手是真人?基于云开发制作一个文件传输助手小程序,你发给ta的小秘密,只有你自己知道. 开发步骤 一.创建小程序 二.云开发配置 环境配置 绑定云环境 三.页面设计 首页 详情页 底部弹窗 ...
- Qt Quick实现的文件传输工具(TCP传输篇)
[写在前面] 本篇为传输篇. 接上篇. [正文开始] 在上一篇中,我们已经扫描到了整个局域网中运行了本工具的用户,以 <name, ip> 的形式存储在 DiscoverConnecti ...
- 收藏一款高效开源的局域网的文件传输神器
背景 平常使用电脑办公的时候,经常会有把手机上的文件传到电脑或把一个文件分发给局域网下的各个伙伴的情况,通常我们会选择使用QQ或微信的文件传输功能来实现. 但是当文件比较大时,就无法发送了,就像下图这 ...
- 基于TCP的大文件传输c语言项目
文章目录 前言:功能实现 tcp文件传输的基本过程: 1.用户登录 1.1创建数据库 2.文件普通下载和上传的实现: 2.1 普通下载 2.2 普通上传 2.3 文件秒上传的实现 2.断点下载和断点上 ...
最新文章
- rabbitmq 集群搭建
- Struts2-result类型
- 计算机机房电力切换演练方案,机房停电应急演练实施具体技术方案.doc
- JAVA 程序执行进行计时,用于验证程序执行的时间
- 解决:Chrome 插件安装时提示 程序包无效:“CRX_HEADER_INVALID“
- ef6 mysql_VS2015 + EF6连接MYSQL5.6
- 解决ZF2_PATH environment
- python编程 迷你世界_迷你编程电脑版|迷你世界迷你编程下载 v1.0官方版 - 绿点软件站...
- Struts学习笔记总结
- 太赞了!超炫的页面切换动画效果【附源码下载】
- JDBC中PreparedStatement接口的执行逻辑
- ASP.NET 备忘
- 设计师必备的三个导航网站
- 一篇很好的《数据分析》文章
- Scrapy入门到放弃06:Spider中间件
- 二、基础SpringBoot2.0.0M4项目目录讲解
- 区块链新年不夜天 | 国金苏亮:区块链将引发深刻的社会结构范式革命
- 钱币兑换问题c语言编程,HDU 1284 钱币兑换问题
- 如何给孩子选绘本:绘本筛选实践分享
- Linux系统信息查看命令 -