2020-10-12

C# Socket TCP发送图片与接收图片

如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !

---------------------------------------------------------------------------------------------------------------------------------

运行结果:

 

 发送端代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Net.Sockets;using System.Net;namespace tcp{ public partial class Form1 : Form {  public Form1()  {   InitializeComponent();  }  private void Form1_Load(object sender, EventArgs e)  {   //textBox1.Text = "101.91.224.228";   textBox1.Text = "192.168.1.100";   textBox2.Text = "8008";  }  FileStream fs = new FileStream(@"1.jpg", FileMode.Open);  private void SendImage(IPAddress remoteIP,int Port)  {   //实例化socket       Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);   IPEndPoint ipep = new IPEndPoint(remoteIP, Port);   socket.Connect(ipep);   long contentLength = fs.Length;   //第一次发送数据包的大小      socket.Send(BitConverter.GetBytes(contentLength));   while (true)   {    //每次发送128字节        byte[] bits = new byte[128];    int r = fs.Read(bits, 0, bits.Length);    if (r <= 0) break;    socket.Send(bits, r, SocketFlags.None);   }   socket.Close();   fs.Position = 0;  }  private void button1_Click(object sender, EventArgs e)  {   SendImage(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text));   MessageBox.Show("发送成功");  } }}

  接收端代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace recTCP{ public partial class Form1 : Form {  public Form1()  {   InitializeComponent();  }  private void Form1_Load(object sender, EventArgs e)  {   //RecviveImage();   textBox1.Text = "8008";  }  private void RecviveImage(int port)  {   new Thread(delegate () {   Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);   IPEndPoint ipep = new IPEndPoint(IPAddress.Any, port);   socket.Bind(ipep);   socket.Listen(2);   while (true)    {     try     {      byte[] data = new byte[8];      Socket clientSocket = socket.Accept();      if (clientSocket.Connected)      {       clientSocket.Receive(data, data.Length, SocketFlags.None);       long contentLength = BitConverter.ToInt64(data, 0);       int size = 0;       MemoryStream ms = new MemoryStream();       while (size < contentLength)       {        byte[] bits = new byte[128];        int r = clientSocket.Receive(bits, bits.Length, SocketFlags.None);        if (r <= 0) break;        ms.Write(bits, 0, r);        size += r;       }       Image img = Image.FromStream(ms);       this.Invoke((EventHandler)delegate        {        pictureBox1.Image = img; //更新在窗体控件上              });       clientSocket.Close();       ms.Flush();       ms.Close();       ms.Dispose();      }     }     catch { }    }   })   { IsBackground = true}.Start();  }  private void button1_Click(object sender, EventArgs e)  {   RecviveImage(int.Parse(textBox1.Text));  } }}

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !

原文转载:http://www.shaoqun.com/a/480941.html

启明星软件:https://www.ikjzd.com/w/1436

camel:https://www.ikjzd.com/w/331.html

bol:https://www.ikjzd.com/w/291


如果需要查看更多文章,请微信搜索公众号csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群,我邀请你进群!!!---------------------------------------------------------------------------------------------------------------------------------运行结
www.made-in-china.com:https://www.ikjzd.com/w/2777
亿恩网:https://www.ikjzd.com/w/1461
通知!速卖通不用缴纳年费了,三次考核不达标将被永久清退!:https://www.ikjzd.com/home/111406
eBay加拿大站推出Promoted Listing新政策更新:https://www.ikjzd.com/home/113538
关于易得客多店铺IP管理的价值及安全防护机制!:https://www.ikjzd.com/home/125792

No comments:

Post a Comment