📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.IO;
using System.Threading;
using System.Net;
namespace DesktopListener
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Socket Listener;
private Thread ListenThread;
private void button1_Click(object sender, EventArgs e)
{
try
{
ListenThread = new Thread(new ThreadStart(this.ListenerThreadProc));
ListenThread.Start();
}
catch (Exception)
{
MessageBox.Show("Failed to start the listened thread");
}
}
private void ListenerThreadProc()
{
Listener = new Socket( AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
Listener.Blocking = true;
Listener.Bind(new IPEndPoint(IPAddress.Any,27020));
try
{
// Listen for all incomming messages
Listener.Listen(10);
while (true)
{
Socket socket = Listener.Accept();
StartImageHandler(ref socket);
}
}
catch(Exception)
{
}
Listener.Close();
}
private void StartImageHandler(ref Socket Caller)
{
// Spawn a thread to listen to this socket data.
Thread Handler = new Thread(new ParameterizedThreadStart(HandleIncommingImages));
Handler.Start(Caller);
}
private void updateScreenRedraw(object o, EventArgs e)
{
try
{
this.pictureBox1.Image = new Bitmap(string.Format(@"c:\img\image{0}.jpg", count));
}
catch (Exception ex)
{
//Ignore it
}
}
private int count;
private void HandleIncommingImages(Object param)
{
NetworkStream ns = new NetworkStream((Socket)param, FileAccess.Read, false);
BinaryReader sr = new BinaryReader(ns);
count = 0;
try
{
while (true)
{
int Size = sr.ReadInt32();
if (Size < 0)
{
MessageBox.Show("Size Error!");
}
Byte[] Buffer = sr.ReadBytes(Size);
// Hmm got a bunch of img bytes. what now!
count++;
FileStream fs = File.Create(string.Format(@"c:\img\image{0}.jpg", count));
fs.Write(Buffer, 0, Size);
fs.Close();
EventHandler ev = new EventHandler (updateScreenRedraw);
this.Invoke(ev);
}
}
catch (Exception ex)
{
MessageBox.Show("Session Ended");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -