C# Socket传输图片
来源:互联网 发布:汉服淘宝店平价学生党 编辑:程序博客网 时间:2024/05/16 07:03
不管是socket还是udp发送图片都是把图片转换成字节流,收到字节流的电脑把字节流写入磁盘便生成了新的图片。
首先是把图片转换成字节流的方法:
public static byte[] GetPictureBytes(string filename) //filename填写图片路径 { FileInfo fileInfo = new FileInfo(filename); byte[] buffer = new byte[fileInfo.Length]; using (FileStream stream = fileInfo.OpenRead()) { stream.Read(buffer, 0, buffer.Length); } return buffer; }
发送端:
地址: IPEndPoint iep = new IPEndPoint(IPAddress.Parse(strIp), int.Parse(strPort));
bytes = GetPictureBytes(@strP);//图片路径,转成字节流 client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//实例化Socket对象 client.Connect(iep);//与该ip地址进行连接 byte[] datasize = new byte[4]; datasize = BitConverter.GetBytes(bytes.Length); //把长度作为16进制数放在datasize中 client.Send(datasize); //发送字节流长度给服务器 client.Send(bytes, bytes.Length, SocketFlags.None); //发送图片字节
服务器端:
FileStream wrtr; //文件读写类 server.Listen(10); //监听 Socket s = server.Accept(); //当有客户端与服务器进行连接,Accept方法返回socket对象,通过该对象可以获取客户端发送的消息 byte[] data = new byte[4]; int rect = s.Receive(data, 0, 4, 0); //用来接收图片字节流长度 int size = BitConverter.ToInt32(data, 0); //16进制转成int型 int dataleft = size; data = new byte[size]; //创建byte组 wrtr = new FileStream(strPath + "\\"new.png", FileMode.Create); //创建新文件"new.jpg",strPath是路径 int total = 0; while (total < size) //当接收长度小于总长度时继续执行 { rect = s.Receive(data, total, dataleft, 0); //接收字节流,receive方法返回int获取已接收字节个数,第一个参数是需要写入的字节组,第二个参数是起始位置,第三个参数是接收字节的长度 total += rect; //已接收个数-下一次从当前个数开始接收 dataleft -= rect; //剩下的字节长度 } wrtr.Write(data, 0, data.Length); //输出文件 wrtr.Flush(); //强制输出 wrtr.Close(); //关闭文件流对象
0 0
- C# Socket传输图片
- c#2005如何通过socket传输图片
- Java Socket传输图片
- 使用Socket传输图片
- VC socket传输图片
- socket传输图片文件
- JAVA socket传输图片
- 关于socket传输图片
- c# socket 传输文件
- c# socket 传输文件
- C# socket 传输对象
- C# Socket传输DataTable
- C#图片传输
- Unity3d使用socket传输图片
- Unity3d使用socket传输图片
- Socket UDP远程传输图片
- C# socket传输自定义对象
- C# socket传输自定义对象
- java c/cpp互相调用实例(c/cpp调用java )
- HDU 5072 Coprime (单色三角形问题+容斥原理)
- android Junittest
- Linux 下删除或创建以特殊特殊字符的文件
- Loader异步装载复习——简答版通讯录助手
- C# Socket传输图片
- 英语26个字母周期表与计算机分析
- uva 590(dp)
- Linux设备驱动程序学习笔记13:中断的注册流程
- 机器视觉(相机、镜头、光源)全面概括——mark
- struts2和struts1的理解
- Struts2 Hello World 实例
- IOS 启动画面
- ie7下table添加新元素的bug