网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容 知识问答

C#实战026:socket实现单文件传输

时间:2024-11-02 23:30:08

1、这里用到了Forms窗口程序来获取需要传送的文件,大家可以参考:C#实战025:控制台调用Forms窗口程序

C#实战026:socket实现单文件传输

4、在服务器端我们通过接收到的文件信息进行判断,是信息还是文件,是信息就提取文件名出来,方便后面创建文件时使用 if (reveiceName[0] == 0)//判断数组第一个值,如果为0则说明传的是信息 { fileName = Encoding.UTF8.GetString(result, 1, num - 1);//提取字节信息并转换成String Console.WriteLine("接收客户端的消息:{0}", fileName); }

C#实战026:socket实现单文件传输

6、byte[] arrFile = new byte[fs.Length]; //定义缓存控件,长度为文件长度 int length = fs.Read(arrFile, 0, arrFile.Length);//将文件读入缓存空间 byte[] SendarrFile = new byte[length + 1];//定义新的字节数组 SendarrFile[0] = 1;//将数组第一位设置为1,来表示发送的是文件数据 Buffer.BlockCopy(arrFile, 0, SendarrFile, 1, length);//偏移复制字节数组 socketClient.Send(SendarrFile);//将读取成功的文件发送给SocketServer服务器 Console.WriteLine("文件发送完毕!!!!");

C#实战026:socket实现单文件传输

8、if (reveiceName[0] == 1)//判断数组第一个值,如果为0则说明传的是文件 { SaveFileDialog save = new SaveFileDialog();//创建SaveFileDialog实例 string spath = @"C:\Users\admin\Desktop";//制定存储路径 string fullPath = Path.Combine(spath, fileName);//获取存储路径及文件名 FileStream filesave = new FileStream(fullPath, FileMode.Create, FileAccess.Write);//创建文件流,用来写入数据 filesave.Write(result, 1, num - 1);//将数据写入到文件中 filesave.Close(); Console.WriteLine("保存成功!!!"); }

C#实战026:socket实现单文件传输
© 2025 智德知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com