问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#中CommonModule.EzoneModule.SendVarData在哪个命名空间下

发布网友 发布时间:2024-09-30 12:23

我来回答

1个回答

热心网友 时间:2024-10-04 02:07

你是想使用文件传输吧,貌似没有找到CommonModule 的命名控件,可以用下面的办法来实现

private string path = "F:\\SmartMovie.EXE"; //要发送的文件

private Socket s;

private void listen()
{
string ip = "127.0.0.1"; //远程IP 这里定义为自己的机器
IPAddress[] ih = Dns.GetHostAddresses(ip); //获得IP列表
IPAddress newip = ih[0]; //获取IP地址
int port = 6789; //定义端口
IPEndPoint Conncet = new IPEndPoint(newip, port); //构造结点
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //初始化socket

try
{
s.Connect(Conncet); //连接远程服务器
if (s.Connected) //如果连接成功 s.Connected 则为true 否则为 false
{

Console.WriteLine("连接成功");
Thread t = new Thread(new ThreadStart(set)); //创建进程
t.Start(); //开始进程
Console.WriteLine("发送完毕")

}

}
catch(NullReferenceException e)
{

Console.WriteLine("{0}",e);

}

private void set() //创建set函数
{
Console.WriteLine("开始发送数据");
byte[] b = new byte[10000000]; //创建文件缓冲区,这里可以认为文件的最大值
FileStream file = File.Open(path, FileMode.Open,FileAccess.Read); //创建文件流
int start = 0;
int end = (int)file.Length; //获取文件长度 文件传送如果有需要超过int的范围估计就要改写FileStream类了

try
{
while (end != 0)
{
int count = file.Read(b, start, end); //把数据写进流
start += count;
end -= count;
}
while (start != 0)
{
int n = s.Send(b, end, start, SocketFlags.None); //用Socket的Send方法发送流
end += n;
start -= n;
}

file.Close(); //关闭文件流
s.Close(); //关闭Socket
}
catch (NullReferenceException e)
{
Console.WriteLine("{0}", e);
}
}

这样文件发送的模型就实现了

接下去实现文件的接收,首先要确定对方发送文件的长度,其实上面的那段还要加入发送文件长度的功能,实现很简单,就是发送int变量end ,然后要求接收代码返回一个Boolean确定是否发送,这里为了更简明的说清楚原理并没有实现

private void get()
{
string path = "G:\\da.exe"; //接收的文件
FileStream file = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write); //写入文件流
TcpListener listen = new TcpListener(6789); //监听端口
Socket s1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //定义Socket并初始化
try
{
listen.Start(); //开始监听
s1 = listen.AcceptSocket(); //获取Socket连接
byte[] data = new byte[10000000]; //定义缓冲区
int longer = data.Length;
int start = 0;
int mid = 0;
if (s1.Connected) //确定连接
{
Console.WriteLine("连接成功");
int count = s1.Receive(data, start, longer, SocketFlags.None); //把接收到的byte存入缓冲区
mid += count;
longer -= mid;
while (count != 0)
{
count = s1.Receive(data, mid, longer, SocketFlags.None);
mid += count;
longer -= mid;
}
file.Write(data, 0, 1214134); //写入文件,1214134为文件大小,可以用socket发送获得,代码前面已经说明。
s1.Close();
file.Close();
}
}
catch(NullReferenceException e)
{
Console.WriteLine("{0}",e);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联想Z470AM I5处理器与I3 联想ideapad z470 独显默认设置是什么 联想Z470 I5处理器 GT520M的显卡跟普通的GT520M显卡有什么区别 性能怎 ... 我新买了一台联想z470 i3-2310 但是朋友说显卡不太好!! 我玩天龙八部... 联想的z470笔记本 上面 的独显GT520M 能不能 更换 或者是升级阿? ...我的是双显卡的 z470- i5 显卡是 gt520m 能换吗 vivo手机耳机麦克风说话声音小 耳机通话声音小是怎么回事 为什么我手机耳机的麦克风声音很小怎么调 求:7个字的情侣游戏名,纯汉字,有诗意的(不要古诗)。不带任何符号或英文... 怎么对一个男的表达爱慕又不会让他认为这个女孩子不矜持. 当喜欢一个人时,怎么让他知道,而又不失女孩子的矜持? 抖音直播卖衣服需要在淘宝开店吗?如何卖东西? 抖音小店没有淘宝店怎么办?可以开吗? 开通抖音小店不挂淘宝可以吗 正丰阀门怎么样 皇明太阳能智能温控器不上水是什么原因 给姓牟的女孩在龙年取什么名字好 皇明太阳能上水显示E2 龙年,姓牟,坤字怎么取名龙年出生,姓牟,坤字辈怎么取名才好 起名字龙年的儿子,求名字啊!姓牟 做到棺材的梦 如何通过AirDroid Remote Support远程控制另一台电脑? 验证码短信被拦截了怎么办? 2012中国上海脱硫脱硝及除尘技术设备展览会参展费用 2012中国上海脱硫脱硝及除尘技术设备展览会展品范围 短信被拒显示什么 第十三届(春季)中国国际脱硫脱硝及除尘技术设备展览会主办单位 2011第十三届(秋季)中国国际脱硫脱硝及除尘技术设备展览会展会介绍 什么是"孜"字的形声结构含义? 女生的矜持很重要吗?可是当她遇到自己爱的人,矜持就不知道在哪里了? 喜欢一个人是不是应该让他知道 ? 怎样才能让他知道我喜欢他??? 我怎样能让他知道我喜欢他? 女孩主动追求男生,那么她的矜持度怎么把握呢? 刘姓女孩名字2023年11月20日出生的 刘姓 女孩 2012年12月11日 20点半出生 拜求大师起名。。 微信电脑版如何发送照片? WinNT 下改网卡地址的方法,想知道修改成功的原因 微信电脑版能直接发送多张图片吗 电脑微信如何发送高清图片? 512kbps网速能看电视吗 请问家用电脑用电信的512KB网速好吗? 我家宽带 是512kb的如果接2电脑一个看电影一个玩游戏会卡吗 512KB玩游戏会不会卡 我的笔记本是2GB的内存,32位的win7系统,能升级到64位的win10么? 幼猫粮哪个牌子好 这个边框怎么做 谁会呀,谢谢了 这种照片怎么拍出来?就是外面有白边框的照片。。。这种到印照片的地方... 我刚买回来的小米盒子 ,我想下点软件,可是插上电脑用数据线,小米盒子电 ...