基本信息
源码名称:C#局域网桌面共享 例子
源码大小:0.33M
文件格式:.zip
开发语言:C#
更新时间:2015-05-13
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
C#局域网桌面共享
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.IO; using System.Threading; using System.IO.Compression; namespace deskshare { /// <summary> /// Description of MainForm. /// </summary> public partial class MainForm : Form { public MainForm() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; } Socket hostSocket; Thread thread; private void Button1Click(object sender, EventArgs e) { Socket receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint hostIpEndPoint = new IPEndPoint(IPAddress.Parse(textBox1.Text.Trim()), 10001); //关联结点 receiveSocket.Bind(hostIpEndPoint); receiveSocket.Listen(10); MessageBox.Show("start"); hostSocket = receiveSocket.Accept(); thread = new Thread(new ThreadStart(trreadimage)); thread.IsBackground = true; thread.Start(); } private void trreadimage() { try { while (true) { int len = 0; byte[] b = new byte[1024 * 100]; len = hostSocket.Receive(b); //byte[] bb=new byte[len]; //Array.Copy(b, 0, bb, 0, len); byte[] arr = Decompress(b,len); if (arr == null) continue; MemoryStream ms = new MemoryStream(arr); Image img; if (getImage(ms, out img)) { picReceive.Image = img; } } } catch (Exception ee) { MessageBox.Show(ee.Message); thread.Abort(); } } private bool getImage(MemoryStream ms,out Image image) { try { image = Image.FromStream(ms); return true; } catch { image = null; return false; } } /// <summary> /// 解压缩流 /// </summary> /// <param name="sourceStream"></param> /// <returns></returns> public byte[] Decompress(Byte[] bytes,int len) { try { using (MemoryStream tempMs = new MemoryStream()) { using (MemoryStream ms = new MemoryStream(bytes,0,len)) { GZipStream Decompress = new GZipStream(ms, CompressionMode.Decompress); Decompress.CopyTo(tempMs); Decompress.Close(); return tempMs.ToArray(); } } } catch { return null; } } private void btnStart_Click(object sender, EventArgs e) { hostSocket.Send(new byte[] { 2, 2, 2 }); } private void btnStop_Click(object sender, EventArgs e) { hostSocket.Send(new byte[] { 1, 1, 1 }); } } }